我对python很新,所以可能只是因为我不理解该语言的某些部分。下面是一些代码,为了示例,我设法做了最小的代码:
class A(object):
def __init__(self):
self.m = 5
class T(object):
def __init__(self, x = []):
self.x = x
def foo():
t = T()
t.x.append(A())
def bar():
r = T()
print(r.x)
foo()
bar()
当我运行它时,我得到以下结果:
python3 test.py
[<__main__.A object at 0x7f15834af4a8>]
我的理解是对T()的调用应该创建一个T对象并将x初始化为空列表。 我们称之为foo()的事实不应该影响bar中发生的事情,不是吗?
感谢您的帮助。