Python 中的链式赋值,例如:
x = y = somefunction()
相当于下面两条顺序执行的语句:
temp = somefunction() x = temp y = temp
这意味着首先计算赋值运算符右侧的表达式,然后将结果值赋给所有左侧的变量,从左到右。
例如,以下代码将打印数字 10 两次:
def somefunction(): return 10 x = y = somefunction() print(x) print(y)
需要注意的是,链式赋值可以是处理可变对象(例如列表)时会出现问题。例如,以下代码将相同的空列表分配给 x 和 y:
x = y = [] x.append(1) print(x) print(y)
这将打印 [1, 1],因为 x 和 y 引用相同的列表。如果您打算创建两个单独的列表,则应该编写:
x = [] y = [] x.append(1) print(x) print(y)
这将打印 [1] 和 [],因为 x 和 y 引用不同的列表。
以上是Python 中的链式赋值如何工作?处理可变对象时有哪些潜在陷阱?的详细内容。更多信息请关注PHP中文网其他相关文章!