M T*_*omb 0 python arguments if-statement function
我有以下情况:
def func1(a = 0, b = 0):
return a + b**2
def func2(x):
if x == 'a':
return func1(a = 2)
elif x == 'b':
return func2(b = 2)
print(func2('a'))
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以a不作为字符串传递并摆脱 if 语句?
构造一个字典并将其与映射解包语法一起使用。
def func2(x):
return func1(**{x: 2})
Run Code Online (Sandbox Code Playgroud)
您可能仍然需要一个if语句来验证 的值是否x是 的有效参数的名称func1。如此处所示,当尝试使用 调用时,类似的调用func2('c')将产生一个。TypeErrorfunc1{'c': 2}
| 归档时间: |
|
| 查看次数: |
28 次 |
| 最近记录: |