Python 为什么我的函数总是返回更长的列表?
我打开python解释器,编写代码并运行以下函数Python 为什么我的函数总是返回更长的列表?,python,Python,我打开python解释器,编写代码并运行以下函数 >>> def crazy_function(my_list=[]): ... my_list.append(0) ... return my_list ... >>> crazy_function() [0] >>> crazy_function() [0, 0] >>> crazy_function() [0, 0, 0] >>> cr
>>> def crazy_function(my_list=[]):
... my_list.append(0)
... return my_list
...
>>> crazy_function()
[0]
>>> crazy_function()
[0, 0]
>>> crazy_function()
[0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0, 0, 0, 0]
>>>
发生了什么事?为什么我调用函数越多,函数返回的列表就越长?是否应该在每次调用函数时创建新的本地列表?将可变对象指定给函数参数的默认值是一个常见错误。引述: 默认参数值在函数定义为 已执行。这意味着当 函数,并使用相同的“预计算”值 每次打电话。这对于理解 默认参数是可变对象,如列表或字典: 如果函数修改了对象(例如,通过向 列表),默认值实际上已修改。这通常不是 目的是什么
这个问题被问了很多——这些问题总是很快就解决了。真令人印象深刻。天哪,哇。谢谢你指导我找到一个资源。:)