python总结

函数默认参数相关
默认值只被赋值一次:后续都采用第一次调用时的赋值。哪怕期间又给默认值参数传递了其他参数。
所以当默认值是一个可变对象时就很容易出错:可变对象是指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]