我有需要大量的參數,因爲我不想記住它們的位置的功能,我決定使用命名參數使用全局變量的缺省值
def f(a=None, b=None, c=None):
print a,b,c
f('test', c=5, b='second param')
>>> test second param 5
現在,一般我只改變一個參數一次,所以我想通過只打字 f(c = 3.14)來調用該函數,預期的結果是f(a = a,b = b,c = 3.14),即每個沒有明確傳遞的參數都應該從本地範圍讀取。
但是,當然,它不因爲使用命名參數我要設置默認值,如果我使用** kwargs,而不是工作,它會忽略參數
def f(**kwargs):
print a,b,c
a=1; b=2; c=3
f(a=2, b=4, c=8)
>>> 1 2 3 # instead of 2 4 8
我用來定義一個新功能對於每一個參數,但我不喜歡這個方法,雖然它一直是最有效的,到目前爲止
def fc(c_new):
return f(a, b, c_new)
如何使功能使用的變量在其目前的範圍爲默認值的命名參數?
您沒有使用函數中的關鍵字參數! – volcano
@volcano就是這一點。 – BartoszKP
所有函數參數都有名稱。我認爲你的意思是關鍵字參數。 – martineau