我想很多人都看到了python的函數接收默認參數。例如:Python函數中的默認參數在哪裏
def foo(a=[]):
a.append(3)
return a
如果我們使用FOO()調用此函數,輸出將在調用後每次追加整數「3」。
定義此函數時,會在當前環境中定義一個名爲'foo'的函數對象,此時也會評估默認參數值。每次在沒有參數的情況下調用函數時,評估參數值將根據代碼進行更改。
我的問題是,這個評估參數在哪裏存在? 它是在函數對象中還是在調用函數時在方法對象中? 因爲python中的所有東西都是一個對象,所以必須有一些地方來保存'a' - >評估參數的名稱 - >值綁定。我是否過度思考這個問題?
是的,但OP所要求的'a'到'[]'的映射在哪裏? – MattH 2012-04-12 09:47:35
@MattH更新了答案,謝謝。 – bereal 2012-04-12 10:10:05