2

可能的重复:
Python 中的“Least Astonishment”:可变默认参数

谁能给我解释一下?

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