2015-11-20 45 views
1

是否可以將參數傳遞給字典中的函數?Python:將參數發送到字典中的函數

d = {"A": foo(), "B": bar()} 

def foo(arg): 
    return arg + 1 

def bar(arg): 
    return arg - 1 

在這種情況下,我想引用函數傳遞ARG巴()動態

d["B"] #<-- pass arg to bar() 
+1

你的字典語法是錯誤的。父親不應該在那裏。否則,你實際上是立即調用函數並存儲它們的返回值。 – Doorknob

+0

@ Doorknob - 我不會在語法上調用這個問題。這是完全有效的Python;它只是不會給出正確的結果(當然,函數必須在被引用和調用之前被定義)。 – TigerhawkT3

+0

@TessellatingHeckler - 我在這個問題中看到的'foo'沒有這樣做。 – TigerhawkT3

回答

2

這是可能的,但你必須參考的功能(例如foo)而沒有調用它(例如foo())。

def foo(arg): 
    return arg + 1 

def bar(arg): 
    return arg - 1 

d = {"A": foo, "B": bar} 

結果:

>>> d['A'](5) 
6 
+0

您應該添加'foo'引用名爲'foo'的函數,而'foo()'(帶有parens)調用它。 –

+0

我認爲這很清楚,因爲它是代碼中的唯一更改(除了消除'NameError'),但希望編輯可以改進它。 – TigerhawkT3

+0

謝謝,這工作像一個魅力! – D4rwin

相關問題