首页 > 解决方案 > 将变量设置为 var=var=value 可以吗?

问题描述

例子:

x=y=z=True

我想知道是否由于内存或smth而导致性能不佳,因为例如 bool 是不可变的。

标签: python

解决方案


对于单个名称,它具有

x=True
y=x
z=x

但是(取决于编译器中的“优化”)可能有效,因为它不(天真地)涉及重新加载存储到x.

使用复杂的名称,可能会出现更复杂的行为:

a[i]=i=j

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

a[i]=j
i=j

既取决于算法的性质(它在概念上是否重要,因为它们是在某种排列中分配的索引之后的?)以及是否i 只是j一个变量或实际上是一些不耐重复的复杂表达式。(当然可以写

new_i=j
a[i]=new_i
i=new_i

但请记住,额外的变量名称也会降低可读性——new_i稍后使用?)


推荐阅读