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
此代码在 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