执行
是否合法a = b = 3
在python中?如果是这样,这是一种不好的做法吗?
答案 0 :(得分:8)
是的,请注意这样的事情:
a = b = []
a.append(2)
print a
print b
打印:
[2]
[2]
但除此之外,没关系。 @Martijn在他的回答中有很多信息,所以请查看:)。
答案 1 :(得分:5)
是的,这样做是合法的。不,这不是一种不好的做法。
考虑到首先评估右侧(值表达式),然后从左到右进行赋值; 3
首先分配到a
,然后分配到b
。
来自assignment statement documentation:
赋值语句计算表达式列表(请记住,这可以是单个表达式或以逗号分隔的列表,后者产生元组)并将单个结果对象从左到右分配给每个目标列表。
您将相同的值分配给所有目标。这意味着每个变量仅引用一个值。当该值可变时,这很重要,如列表或字典。