有多少种方法可以更改变量的值?

时间:2018-11-02 16:37:33

标签: python variables

在Python中,如果要更改变量的值,有多种方法:

foo = 1               # By assignment
bar.func()            # By calling its method.
for baz in range(5):  # By "leaking" from a loop

出于好奇,我想在“正常”程序中找到实现该目标的所有方法。 “正常”是指不直接操纵locals()或做类似的事情。

我也知道围绕Python是否具有真正的“变量”进行了一些讨论,但对于这个问题,我们不要专注于此。

1 个答案:

答案 0 :(得分:0)

恐怕真的不清楚“更改变量的值”对您意味着什么。 Python对象具有状态,因此您可以一致地询问哪些方法可以改变对象的状态,并且可以将Python中的名称绑定到对象,因此可以一致地询问这种绑定如何更改。

对于前者,它取决于对象的类型。对于后者,请参见《 Python语言参考手册》中的4.2.1节(“名称绑定”):

  

以下结构绑定名称:函数的形式参数,import语句,类和函数定义(这些绑定在定义块中的类或函数名称)以及作为标识符的目标(如果在赋值中出现), for循环标头,或as语句或with子句中except之后。形式为import的{​​{1}}语句绑定在导入模块中定义的所有名称,但下划线开头的名称除外。该表格只能在模块级别使用。

     

from ... import *语句中出现的目标也被认为是为此目的而绑定的(尽管实际的语义是要取消绑定名称)。