重複の可能性:
Python の「最小の驚き」: 変更可能な既定の引数
次の奇妙な動作を説明できる人はいますか?
私は次のクラスを持っています:
class Zoo:
def __init__(self,alist=[]):
self.animals = alist
def __len__(self):
return len(self.animals)
def add(self,a):
self.animals.append(a)
そして、私が次のことをすると、
In [38]: z=Zoo()
In [39]: z.add(2)
In [40]: z.add(23)
In [41]: len(z)
Out[41]: 2
In [42]: z2=Zoo()
In [43]: len(z2)
Out[43]: 2
z2.animals が空のリストではないのはなぜですか?
ありがとう、マティアス