Python 中的链式赋值(其中多个变量在一行中分配给同一个值)引发了对其行为和不同链式作业之间的关系。本文旨在阐明这些概念。
考虑链式赋值:
x = y = somefunction()
这相当于以下单独的赋值:
temp = somefunction() x = temp y = temp
需要注意的是,首先分配最左边的目标。这意味着 somefunction() 返回的值被分配给链式赋值最左端的变量,然后该值被重新分配给其余变量。
使用链式赋值来分配可变对象(例如列表、字典)时,需要小心。考虑以下情况:
x = y = [] # Wrong x.append(1) print(y) # Prints [1]
在这种情况下,x 和 y 引用同一个列表。附加到 x 也会影响 y,因为它们是同一底层对象的别名。
要创建单独的、不同的变量,最好将每个变量分配给其自己的值:
x = [] # Right y = [] # Right
现在,x 和 y 是两个独立的空列表。
以上是以下是一些基于问题、与文章内容相关的英文标题选项: * Python 中的链式赋值:它是如何工作的? * 链式作业总是安全的吗的详细内容。更多信息请关注PHP中文网其他相关文章!