函数默认参数相关
默认值只被赋值一次:后续都采用第一次调用时的赋值。哪怕期间又给默认值参数传递了其他参数。
所以当默认值是一个可变对象时就很容易出错:可变对象是指list、dictionary、大多类的实例,而不包括tuple。
def test(item, coll = []): coll.append(item) print coll return coll
if __name__ == '__main__': coll = test(1) # [1] coll = test(2, []) # [2] test(5) # [1, 5]
|
阅读(1038) | 评论(0) | 转发(0) |