Can a class variable be created inside one of the class' methods in Python?
关于发布在so上的以下问题,python-为什么在类中使用"self"?,我想知道:
如果我不使用"self."在给定类的方法中创建了一个变量,它会是一个类变量吗?如果不是这样,为什么不呢?
例如,如果我有一个这样的类:
1 2 3 | class A: def somefunction(self): x=1 |
x是一个类变量吗?
实际上不是,因为x不是类变量——它是方法
类变量应在类体中准确定义:
1 2 3 4 5 | class A: x = 1 def somefunction(self): A.x += 1 print A.x |
顺便说一句:即使您定义了正确的类变量,您仍然可以得到输出:
1 2 | 2 2 |
因为在
不,你的假设是错误的。它是一个局部变量。
无论何时在Python函数中分配变量,默认情况下都是在最内层本地命名空间中创建的。除非显式声明变量,否则不会引用其他命名空间(如