我想使用参数的默认值,但在调用中包含其名称。我认为将参数设置为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