【发布时间】:2023-03-03 08:00:23
【问题描述】:
这可能是一个基本问题,因为我还在学习 Python。但是假设我想做这样的事情,
def add(a, b):
return a + b
a, b, c, d = 1, 2, 3, 4
sum = add(a, b if b == 2 else c, d)
基本上,我试图从三元运算符内部传递多个函数参数(如果可能的话,我想要一个类似的解决方案)。此代码当前给出以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: add() takes 2 positional arguments but 3 were given
我还尝试了什么:
add((a, b) if b == 2 else (c, d))add(*(a, b) if b == 2 else *(c, d))
【问题讨论】:
-
当括号变得混乱时,这表明你不应该一开始就将它塞进一行 - 损害可读性。
标签: python python-3.x function arguments conditional-operator