首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在编程中,a=b=c和单独赋值之间有什么区别?

在编程中,a=b=c和单独赋值之间有什么区别?
EN

Stack Overflow用户
提问于 2017-07-17 06:41:57
回答 2查看 49关注 0票数 0

在以下几个方面是否有任何区别:

a=b=c

代码语言:javascript
运行
复制
b = c
a = c

在蟒蛇里?

翻译会以不同的方式解读这些东西吗?

当我使用第一/第二种方法时,如果它有副作用的话,副作用是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-17 06:50:51

对于将来的googling,这被称为“链式分配”或“嵌套分配”。如this answer所示,链式赋值对于强制解释器只计算右手表达式一次很有用。例如:

代码语言:javascript
运行
复制
a = b = myComputeHeavyFunc()  # Only one evaluation

当多行解决方案对功能进行两次评估时,将只对myComputeHeavyFunc()进行一次评估,从而提供性能损失:

代码语言:javascript
运行
复制
a = myComputeHeavyFunc()  # One evaluation
b = myComputeHeavyFunc()  # Another evaluation
票数 2
EN

Stack Overflow用户

发布于 2017-07-17 06:51:18

如果c是一个现有对象,那么这两段代码将具有相同的效果,将ab绑定到相同的现有对象。

如果c是一个文字,那么第一个对象将绑定到同一个对象,而第二个对象将创建两个单独的对象(对于“create”的某个值;差异仅对可变对象重要),并将它们绑定到每个名称。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45137524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档