为什么我应该在Python中引用"名称"和"绑定"而不是"变量"和"赋值"?

BoJ*_*man 10 python

为什么我应该在Python中引用"名称"和"绑定"而不是"变量"和"赋值"?我知道这个问题有点笼统,但我真的很想知道:)

Ste*_*sop 19

在C和C++中,变量是命名的内存位置.变量的值是存储在该位置的值.分配给变量并修改该值.所以变量是内存位置,而不是它的名称.

在Python中,变量是用于引用对象的名称.变量的值是该对象.到目前为止听起来像是一回事.但是分配给变量并且修改对象本身,而是改变变量引用的对象.所以变量是名称,而不是对象.

因此,如果您在抽象中考虑Python的属性,或者如果您正在同时讨论多种语言,那么对这两种不同的东西使用不同的名称会很有用.为了保持正确,你可以避免在Python中讨论变量,并将赋值运算符的作用称为"绑定"而不是"赋值".

请注意,Python语法将"赋值"称为一种语句,而不是"绑定".至少有一些Python文档调用了名称变量.因此,仅在Python的上下文中,执行相同操作并不是错误的.行话词的不同定义适用于不同的语境.

  • @AlexanderMills:这里有[说明差异的图片](http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables) (4认同)
  • jfs评论中的链接已死,但这里有一个[存档版本](https://web.archive.org/web/20180411011411/http://python.net/~goodger/projects/pycon/2007/idiomatic/handout .html#其他语言有变量)。 (3认同)