我想創建一個由固定基本函數創建的函數對象組成的函數列表,但函數對象具有不同的輸入參數。我已經寫了這樣的代碼:Python中的函數對象
def f_base(name):
print "I am %s" % name
f_list = []
for name in ['A', 'B']:
f_list.append(
lambda : f_base(name)
)
f_list[0]()
f_list[1]()
結果是:
I am B
I am B
但我想:
I am A
I am B
有人能解釋爲什麼Python中產生這樣的輸出,什麼是最簡單的如何獲得我需要的結果?
亦稱臭名昭著「[後期綁定疑難雜症](http://docs.python-guide.org/en/latest/writing/gotchas/#late-綁定關閉)' – bereal
太棒了!感謝你的回答! – Fomalhaut