python中的连续赋值

时间:2013-06-26 08:01:42

标签: python variable-assignment

执行

是否合法
a = b = 3

在python中?如果是这样,这是一种不好的做法吗?

2 个答案:

答案 0 :(得分:8)

是的,请注意这样的事情:

a = b = []
a.append(2)
print a
print b

打印:

[2]
[2]

但除此之外,没关系。 @Martijn在他的回答中有很多信息,所以请查看:)。

答案 1 :(得分:5)

是的,这样做是合法的。不,这不是一种不好的做法。

考虑到首先评估右侧(值表达式),然后从左到右进行赋值; 3首先分配到a,然后分配到b

来自assignment statement documentation

  

赋值语句计算表达式列表(请记住,这可以是单个表达式或以逗号分隔的列表,后者产生元组)并将单个结果对象从左到右分配给每个目标列表。

您将相同的值分配给所有目标。这意味着每个变量仅引用一个值。当该值可变时,这很重要,如列表或字典。