我想很多人都看过python接收默认参数的函数。例如:
def foo(a=[]):
a.append(3)
return a
如果我们使用 foo() 调用此函数,则每次调用后输出都会附加整数“3”。
定义此函数时,会在当前环境中定义一个名为 'foo' 的函数对象,同时也会评估默认参数值。每次在没有参数的情况下调用函数时,评估的参数值将根据代码更改。
我的问题是,这个评估参数在哪里存在? 调用函数时是在函数对象中还是在方法对象中? 由于python中的一切都是一个对象,因此必须有一些地方来保存'a'-->已评估参数的名称->值绑定。我是不是在想这个问题?