【文件属性】:
文件名称:Python为何不能用可变对象作为默认参数的值
文件大小:134KB
文件格式:PDF
更新时间:2021-01-21 18:30:51
matlab函数 num numbers
先来看一道题目:
>>> def func(numbers=[], num=1):
... numbers.append(num)
... return numbers
>>> func()
[1]
>>> func()
[1, 1]
>>> func()
[1, 1, 1]
我们似乎发现了一个Bug,每次用相同的方式调用函数 func() 时,返回结果竟然不一样,而且每次返回的列表在不断地变长。
>>> id(func())
4330472840
>>> id(func())
4330472840
从上面可以看出,函数的返回值其实是同一个列表对象,因为他们的id值是一样的,只不过是列表中