我有一个带有一个可选参数的函数,如下所示:
def funA(x, a, b=1):
return a+b*x
我想编写一个调用
funA
并具有可选参数的新函数,但是如果没有传递任何参数,我想将默认值保留在funA
中。我在想这样的事情:
def funB(x, a, b=None):
if b:
return funA(x, a, b)
else:
return funA(x, a)
有没有比这更像蟒蛇的方法?
最佳答案
我会将if b
替换为if b is not None
,这样,如果您将b=0
(或任何其他“falsy”值)作为参数传递给funB
,它将被传递给funA
。
除此之外,我觉得这是一个很好的蟒蛇:清晰和明确。(尽管可能有点无用,这取决于你想做什么!)
一种更加神秘的方法,它依赖于使用正确的关键字参数调用funB
(例如funB(3, 2, b=4)
:
def funB(x, a, **kwargs):
return funA(x, a, **kwargs)
关于python - 调用另一个函数并可选择保留默认参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34205794/