2

重複の可能性:
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 の値も異なるオブジェクト間で共有されていることです...

4

0 に答える 0