1

这样做是否合法

a = b = 3

在蟒蛇?如果是这样,这是一个不好的做法吗?

4

2 回答 2

8

是的,这样做是合法的。不,这不是坏习惯。

请注意,首先计算右侧的值表达式,然后从左到右进行赋值;3首先分配给a,然后分配给b

作业声明文档中

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

您为所有目标分配相同的值。这意味着每个变量只引用一个值。当该值是可变的(例如列表或字典)时,这一点很重要。

于 2013-06-26T08:03:34.223 回答
8

是的,请注意以下内容:

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

印刷:

[2]
[2]

但除此之外,还好。@Martijn在他的答案中有很多信息,所以请查看:)。

于 2013-06-26T08:04:16.317 回答