我想使用參數的默認值,但在調用中包含其名稱。我認爲將參數設置爲None會做到這一點,但事實並非如此。如何傳遞參數作爲默認參數?
例如:
def a(num=3):
print(num)
a(num=None) #returns "None", not "3" like I want it to.
如何使用一個命名參數的默認值,同時包括它在呼叫? (它甚至有可能?)
只是爲了解釋爲什麼我會想要做這樣的事情(因爲,也許這是在我的整個編碼風格的問題):
我時常有這樣的代碼
def add(num, numToAdd=1):
return num+numToAdd
def addTwice(num, numToAdd=None):
for i in range(2):
num=add(num, numToAdd=numToAdd)
return num
addTwice(3) #throws an error instead of returning 5
我想要的是addTwice
的numToAdd
始終使用默認值add
的numToAdd
,無論它是什麼。
原因:也許在後面的代碼,我意識到這是更好地執行add
時相比,它是添加1
添加2作爲默認所以我將其更改爲
def add(num, numToAdd=2):
return num+numToAdd
但,除非我總能在addTwice
中指定使用缺省值(如果它接收到默認值),否則這將無濟於事。
所以,這是理由。換句話說:我有一個函數(第一個函數)調用另一個函數(第二個函數),並且如果第一個函數必須使用默認值,我希望它默認爲默認值在第二個功能上。這樣,我只需要更改第二個函數的默認值(不是每個函數都調用它)以更改默認功能。
如果包含默認參數,則不必在函數調用中提及它。只要做'a()'。 – michaelpri
它打印無,因爲您顯式傳遞覆蓋默認值的參數 – Li357
爲什麼要傳遞值而不使用它? – cmd