-1
对不起,我真的不知道如何准确地描述了在标题这个问题Python变量奇怪的问题
我这样定义
def f(v,l=[]):
l.append(v)
return l
在我的理解一个功能,输出应该是这样的:
第一呼叫应返回[0]
第二呼叫应返回[1]
第三调用应该返回[2]
但是...这里是真正的输出
>>> f(0)
[0]
>>> f(1)
[0, 1]
>>> f(2)
[0, 1, 2]
不使用'L = []'因为Python创建这个'[]'只有一次,当脚本被加载。 – furas
更确切地说,当函数定义被执行时,而不是函数被调用时,默认参数被评估。 –