我有一个带有一个可选参数的函数,如下所示:
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)
有更多的pythonic方式吗?
我会替换if b
为if b is not None
,所以如果你传递b=0
(或任何其他"虚假"值)作为参数funB
将传递给它funA
.
除此之外,它对我来说似乎相当pythonic:清晰明确.(虽然可能有点无用,取决于你想要做什么!)
一种更加神秘的方式依赖于funB
使用正确的关键字参数调用(例如funB(3, 2, b=4)
:
def funB(x, a, **kwargs): return funA(x, a, **kwargs)
def funA(x, a, b=1): return a+b*x def funB(x, a, b=1): return funA(x, a, b)
设为默认值b=1
in funB()
,然后始终将其传递给funA()