我正在學習使用python的位置參數,也想看看他們在與默認參數混合起來是如何工作的: -位置參數之前使用默認參數
def withPositionalArgs(ae=9,*args):
print 'ae= ', ae
print 'args = ', args
a=1
b=2
c=[10,20]
withPositionalArgs(a,b,c)
這使我的輸出:
ae= 1
args = (2, [10, 20])
正如你所看到的,a
被認爲是一個價值傳遞的ae
,並b
以及c
被認爲是位置參數。
所以,我現在嘗試指派10
爲ae
同時呼籲withPositionalArgs
:
withPositionalArgs(ae=10,b,c)
但是,我不能這樣做。我得到的錯誤:
SyntaxError: non-keyword arg after keyword arg
我的問題是:
我是不是做正確?在python函數的位置參數之前是否允許使用默認參數或者使用好實踐?
你可以用'withPositionalArgs稱之爲(10,B,C)'。 –
「令人驚訝」的是調用...(1,ae = 2)拋出TypeError:...()爲關鍵字參數'ae''獲取了多個值。 –