将变量设置为var = var = value可以吗?

时间:2019-04-22 18:51:19

标签: python

示例:

x=y=z=True

我想知道由于内存或smth是否会导致性能下降,例如bool是不可变的。

1 个答案:

答案 0 :(得分:2)

使用单一名称,其语义与相同

x=True
y=x
z=x

但是(取决于编译器中的“优化”)可能会更高,因为它(天真的)不需要将存储的值重新加载到x中。

使用复杂的名称,可能会发生更复杂的行为:

a[i]=i=j

这将更新a[i](使用旧的i),然后将i设置为相同的值。是否比

更清晰?
a[i]=j
i=j

既取决于算法的性质(在某种排列中分配索引时,i 遵循在概念上是否有意义?)还取决于{{1} }只是一个变量,或者实际上是一些不易重复的复杂表达式。 (当然可以写

j

但是请记住,从可读性的角度来看,其他变量名也要付出代价-以后使用new_i=j a[i]=new_i i=new_i 吗?)