小编Mir*_*ini的帖子

Python实例和属性:这是一个错误还是我完全错了?

假设你有这样的东西:

class intlist:
        def __init__(self,l = []):
                self.l = l
        def add(self,a):
                self.l.append(a)

def appender(a):
        obj = intlist()
        obj.add(a)
        print obj.l

if __name__ == "__main__":
        for i in range(5):
                appender(i)
Run Code Online (Sandbox Code Playgroud)

函数创建一个intlist实例,并在该新实例上调用该方法附加在实例属性l上.

为什么这段代码的输出是:

[0]

[0,1]

[0,1,2]

[0,1,2,3]

[0,1,2,3,4]

?如果我切换

obj = intlist()
Run Code Online (Sandbox Code Playgroud)

obj = intlist(l=[])
Run Code Online (Sandbox Code Playgroud)

我得到了所需的输出

[0]

[1]

[2]

[3]

[4]

为什么会这样?

谢谢

python attributes class instance

5
推荐指数
1
解决办法
284
查看次数

标签 统计

attributes ×1

class ×1

instance ×1

python ×1