我發現了許多關於python函數參數的查詢,但仍然感到困惑。假設我想在某些函數中傳遞幾個參數。如何在python中傳遞默認和可變長度參數?
def anyFunc(name, age, sex = 'M', *cap_letters):
print "name ", name
print "age ", age
print "sex ", sex
for s in cap_letters:
print "capital letter: ", s
name &年齡參數是位置參數。性別是默認參數,其次是非關鍵字參數的可變長度,這是非常少的隨機資本字母。所以,現在,如果我跑
anyFunc("Mona", 45, 'F', *('H', 'K', 'L'))
它給我完美的輸出..
name Mona
age 45
sex F
capital letter: H
capital letter: K
capital letter: L
但是,如果我通過下面,我想使用默認性值,而不是傳遞的參數。產出不如預期的。
anyFunc("John", 45, *('H', 'K', 'L'))
name John
age 45
sex H
capital letter: K
capital letter: L
它應該採用性別的默認值即'M'。我也嘗試在最後通過性別論證,但它給了我語法錯誤。有什麼方法可以實現我想要的嗎?
我的Python 3.0≥,你可以做'sex'一個[關鍵詞 - ** **僅參數(https://www.python.org/dev/ PEPS/PEP-3102 /)。但是,在Python 2.x中,您沒有該選項。 –