在下面的代码中,我认为list
将是每个构造的对象的唯一变量。为什么它作为类变量共享?
01 class Thing(object):
02 def __init__(self, my_list=[]):
03 self.list = my_list
04 return
05
06 thing1=Thing()
07 thing2=Thing()
08 thing1.list.append(1)
09 print thing2.list
id(thing1)
与 不同id(things2)
但id(thing1.list)
相同id(thing2.list)
。
如果我self.list = []
在第 3 行使用,该属性对于每个Thing
. 如果我thing1 = Thing(my_list=[])
在第 6 行使用,并且类似地在第 7 行使用,那么该属性对于每个Thing
.
我在 Canopy 环境中运行 Python 2.7。