调用a = func()时没有加参数,使用默认值,但函数的默认值只会初始化1次;调用b = func()时ls使用上一次的list
可以用id()函数查看地址
可以用一个更直观的例子来说明
def func(ls=[]):
# 函数的默认值只会初始化1次
print(id(ls))
ls.append(1)
return ls
if __name__ == '__main__':
a = func()
b = func()
c = func([3])
d = func()
print(a, b, c, d)