Ale*_*Ale 0 python for-loop class instance-variables
我有一个带有实例变量的类,我想在循环中使用类方法修改,我正在做的简化版本:
class Example:
def __init__(self,x,z):
self.x=x
self.z=z
def run(self,y):
temp_list=[self.x, self.z]
for ind,item in enumerate(temp_list):
temp_list[ind] = temp_list[ind]+y
print (self.x, self.z)
ex = Example(5,6)
ex.run(5)
Run Code Online (Sandbox Code Playgroud)
我得到的输出是[5,6]而不是所需的[10,11].我想知道是否有人能指出我为何会发生这种情况的解释?
在run(),您创建一个包含2个项目的列表,值self.x和self.z.接下来,迭代该列表,并通过添加y来修改每个值.在for-loop之后,temp_list将是[10, 11],但你没有修改self.x或self.y以任何方式.
因此,print()调用将打印未修改的值self.x和self.y值,在您的示例中为5和6.
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |