我有一个带有一个可选参数的函数,如下所示:
def funA(x, a, b=1):
return a+b*x
Run Code Online (Sandbox Code Playgroud)
我想编写一个调用的新函数,funA并且还有一个可选参数,但是如果没有传递参数,我想保留默认值funA.
我在想这样的事情:
def funB(x, a, b=None):
if b:
return funA(x, a, b)
else:
return funA(x, a)
Run Code Online (Sandbox Code Playgroud)
有更多的pythonic方式吗?
Lea*_*rtS 16
我会替换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)
Run Code Online (Sandbox Code Playgroud)
def funA(x, a, b=1):
return a+b*x
def funB(x, a, b=1):
return funA(x, a, b)
Run Code Online (Sandbox Code Playgroud)
设为默认值b=1in funB(),然后始终将其传递给funA()
| 归档时间: |
|
| 查看次数: |
1695 次 |
| 最近记录: |