假设你有这样的东西:
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]
为什么会这样?
谢谢