Python for循环给外部命令赋值时int无.value属性报错问题问询
问题根因
.value属性,原生int类型没有该属性所以触发报错。
另外你提供的代码片段里range (0, len(myList)缺少右括号,修正为range(0, len(myList))即可。
解决方案
- 方案1:复用字面量的包装类封装变量
先通过一次字面量赋值拿到对应的包装类,再用该类封装循环变量,适配赋值逻辑的要求:
# 先获取赋值逻辑默认的包装类 <external command> = 0 wrapper_cls = type(<external command>) myList = [2, 3, 4] for index in range(0, len(myList)): <external command> = wrapper_cls(index) # 剩余业务逻辑
- 方案2:手动构造带
value属性的兼容对象
如果无法获取到对应包装类,直接构造临时对象满足属性要求即可:
myList = [2, 3, 4] for index in range(0, len(myList)): # 动态生成带value属性的对象适配赋值逻辑 val_wrapper = type('ValWrapper', (), {'value': index})() <external command> = val_wrapper # 剩余业务逻辑
内容的提问来源于stack exchange,提问作者IP_AL
相关产品推荐
相关产品推荐

