python - 在 Python 中通过三元运算符传递函数参数

标签 python python-3.x function arguments conditional-operator

这可能是一个基本问题,因为我仍在学习 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))

最佳答案

>>> add(*((a, b) if b == 2 else (c, d)))
3

正如评论中所指出的,您需要如此多的括号来执行此操作这一事实是一个好兆头,表明这不是构建此代码的好方法。

关于python - 在 Python 中通过三元运算符传递函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65852119/

相关文章:

c++ - 指向成员函数的指针

python - 在 Python 中读取带有行连续字符的文件

python - 将共享的 python 包添加到多个 virtualenvs

Python:用其他字符串包围字符串的一部分?

BLE 的 python3 root 权限

JavaScript Chrome 扩展 : Function is not defined

python - 如何在 discord python bot 中制作 Canvas 个人资料卡?

android - 安卓游戏服务器

python - Pandas 系列中的特殊字符串格式

c++ - 被调用的函数到底什么时候结束?