gpt4 book ai didi

python - 元组作为函数参数

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:01 25 4
gpt4 key购买 nike

tuple 在 python 中(在代码块中)由逗号定义;括号不是强制性的(在以下情况下)。所以这三个都是等价的:

a, b = 1, 2
a, b = (1, 2)
(a, b) = 1, 2

如果我定义一个函数

def f(a, b):
print(a, b)

以这种方式调用它会起作用:

f(2, 3)

这不会:

f((2, 3))
# TypeError: f() missing 1 required positional argument: 'b'

当元组是函数参数时,python 如何区别对待它们?这里的括号是必要的(我理解为什么是这种情况,我很高兴 python 以这种方式工作!)。

我的问题是:当元组是函数参数时,python 如何区别对待它们。

最佳答案

为了方便起见,Python 会根据赋值语句的需要构造一个临时元组。因此,一旦到达数据移动,您的所有三个赋值语句就完全相同。

函数调用不是赋值语句;这是一个引用映射。因此,语义不同。

如果您希望 Python 将您的元组解压为两个单独的参数,请使用 * 运算符:

f(*(2, 3))

关于python - 元组作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56498558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com