实例变量未在for循环中修改

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].我想知道是否有人能指出我为何会发生这种情况的解释?

Nio*_*bos 5

run(),您创建一个包含2个项目的列表,值self.xself.z.接下来,迭代该列表,并通过添加y来修改每个值.在for-loop之后,temp_list将是[10, 11],但你没有修改self.xself.y以任何方式.

因此,print()调用将打印未修改的值self.xself.y值,在您的示例中为5和6.