重複の可能性:
Python の「最小の驚き」: 変更可能な既定の引数
誰か私にこれを説明できますか?
class Strange(object):
def mutate(self, x=[]):
x.append(1)
return x
obj = Strange()
print obj.mutate()
another_obj = Strange()
print another_obj.mutate()
>> [1]
>> [1, 1]
mutate() は、オプションのパラメーターなしで呼び出されます。x は常に [] であるべきではありませんか? 私を混乱させているのは、 x の値も異なるオブジェクト間で共有されていることです...