Python class 变量初始化错误 "name 'A' is not defined"

Python Error "name 'A' is not defined" in class variable initialization

此代码在 python 命令行中有效。但是,在模块中编译它时会出现以下错误:“名称 'A' 未定义。”

>>> class A:
...     a = 2
...     c = A.a
... 
>>> A.c
2
class A:
    a = 2
    c = A.a

NameError: name 'A' is not defined

我找到了更好的解决方案。如下所示,一个静态变量可用于另一个静态变量的初始化。下面的代码可以正常编译。

class A:
    a = 2
    b = a

c = A()
print(c.b)

这是b/c class还没有定义,所以你必须把c = A.a放在[=27之外=],或者你可以这样做:

 class A:
     a = 2
 c = A.a
 print(c)

输出:

2

或者,正如@Barman 回复的那样,您也可以这样做:

 class A:
     a = 2
 A.c = A.a
 print(A.c)

输出:

2