示例:
x=y=z=True
我想知道由于内存或smth是否会导致性能下降,例如bool是不可变的。
答案 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
吗?)