Python函数可选参数-可以添加为条件吗?
Posted
技术标签:
【中文标题】Python函数可选参数-可以添加为条件吗?【英文标题】:Python function optional arguments - possible to add as condition? 【发布时间】:2013-07-18 12:11:51 【问题描述】:是否有可能以某种方式将条件语句分配给可选参数?
我最初使用以下构造的尝试没有成功:
y = some value if x == someValue else anotherValue
x 预先分配的位置。
更具体地说,我希望我的函数签名看起来像:
def x(a, b = 'a' if someModule.someFunction() else someModule.someOtherFunction()):
:
:
非常感谢
【问题讨论】:
【参考方案1】:当然,您就是这样做的。您可能要记住,b
的默认值将在您定义函数后立即设置,这可能是不可取的:
def test():
print("I'm called only once")
return False
def foo(b=5 if test() else 10):
print(b)
foo()
foo()
还有输出:
I'm called only once
10
10
仅仅因为这是可能的并不意味着你应该这样做。至少我不会。使用None
作为占位符的详细方式更容易理解:
def foo(b=None):
if b is None:
b = 5 if test() else 10
print b
【讨论】:
以上是关于Python函数可选参数-可以添加为条件吗?的主要内容,如果未能解决你的问题,请参考以下文章
可以在具有默认值(作为可选参数)的参数中分配 const 变量吗?