python 中 "complex(*(1,2))" 中的星号的用途是什么,没有它会 return 出错?

what is the purpose of the asterisk symbol in "complex(*(1,2))" in python without which it will return an error?

我正在学习 python 中的复杂函数。

我了解复杂函数 complex(a, b) 的输入并将 return a+ bi。 我不明白的是,当我以元组形式输入时,complex((a, b)),它会 return 一个错误,但是如果我使用 complex(*(a, b)) 它会 return a+ 双。所以在这种情况下,星号是作为元组给出的复杂函数参数的一部分,还是执行某种操作?谢谢

在这种情况下,函数 complex(a,b) 需要两个参数。当你 运行 这个像 complex((a,b)) 这样的函数时,你只给函数一个参数——它是一个有两个元素的元组。像这样使用 Asterisk 解压可迭代元组

*-运算符用于 argument unpacking

您调用函数的方式不同。这样想:

complex(real=a, imaginary=b)
# vs.
complex(real=(a, b))

这也是为什么你看到有人写def fn(*args, **kwargs),这意味着所有参数和关键字参数都将被解包。