在以下几个方面是否有任何区别:
a=b=c
和
b = c
a = c
在蟒蛇里?
翻译会以不同的方式解读这些东西吗?
当我使用第一/第二种方法时,如果它有副作用的话,副作用是什么?
发布于 2017-07-17 06:50:51
对于将来的googling,这被称为“链式分配”或“嵌套分配”。如this answer所示,链式赋值对于强制解释器只计算右手表达式一次很有用。例如:
a = b = myComputeHeavyFunc() # Only one evaluation
当多行解决方案对功能进行两次评估时,将只对myComputeHeavyFunc()
进行一次评估,从而提供性能损失:
a = myComputeHeavyFunc() # One evaluation
b = myComputeHeavyFunc() # Another evaluation
发布于 2017-07-17 06:51:18
如果c
是一个现有对象,那么这两段代码将具有相同的效果,将a
和b
绑定到相同的现有对象。
如果c
是一个文字,那么第一个对象将绑定到同一个对象,而第二个对象将创建两个单独的对象(对于“create”的某个值;差异仅对可变对象重要),并将它们绑定到每个名称。
https://stackoverflow.com/questions/45137524
复制相似问题