我有一个带有一个可选参数的函数,如下所示:

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/

10-10 23:19