感觉很不理解啊,明明是我们自己吧可变对象追加的元素值,为什么说是多次调用会导致意外呢?你没有append(1)函数还能用这个意外了吗?
def demo(obj=[]):
print('obj的值',obj)
obj.append(1)
demo()
读者你好:
避免使用可变对象作为函数参数。上面的例子效果不太明显,看下面的例子:
def foo(x,items=[]):
items.append(x)
return items
foo(1) # 返回[1]
foo(2) # 返回[1,2]
foo(3) # 返回[1,2,3]
foo(1) # 返回[1,2,3,1]