是否有更簡潔的方式來編寫它?當局部變量名稱與函數參數名稱相同時,將關鍵字參數傳遞給函數
f(a=a, b=b, c=c, d=d, e=e)
背景:我有太多的爭論
f(a, b, c, d, e):
pass
功能我在我的節目,我有一個被命名爲函數的參數完全相同局部變量。
a, b, c, d, e = range(5)
我想用關鍵字參數調用函數。由於變量名稱相同,這就是調用的外觀。
g = f(a=a, b=b, c=c, d=d, e=e) # this can get very long
當然,我可以這樣
g = f(a, b, c, d, e)
但a
,b
,c
,d
,e
使用位置,而不是關鍵字的變量只是名字傳遞aruguments在這個例子中,它很容易看到正確的順序。但不幸的是,我的程序中的變量名稱更復雜,並且沒有容易辨別的自然順序。所以我真的很喜歡通過關鍵字來傳遞它們以避免任何錯誤。
小問題:不應該是'本地人? – senderle 2011-05-02 19:22:02
'lambda'有它自己的作用域,所以如果它在lambda內被使用(但它們將在'globals()')中,那麼它的包含作用域的局部變量不在'locals()'中。 – 2011-05-02 19:24:22
Wunderbar!這正是我所期待的。謝謝!我同意@senderle,我可以使用'locals()'而不是'globals()'。 – 2011-05-02 19:24:43