我正试图向一个类添加一个变量,该类保存该类的实例。下面是我的代码的一个简短版本。
class Classy :
def __init__(self) :
self.hi = "HI!"
# "CLASSIES" variable holds instances of class "Classy"
CLASSIES = []
for i in xrange(0,4) :
CLASSIES.append(Classy())
在运行代码时,我得到以下错误。
Traceback (most recent call last):
File "classy.py", line 6, in Classy
CLASSIES.append(Classy())
NameError: name 'Classy' is not defined
是否有其他方法将类的实例添加到该类中的类/静态变量?
最佳答案
类体在创建类之前执行。因此,您尝试在类存在之前实例化它。您仍然可以将实例附加到类,但必须在类主体完成后创建实例,例如:
class Classy(object):
def __init__(self):
self.hi = "HI!"
CLASSIES = []
for i in xrange(4):
Classy.CLASSIES.append(Classy())
但是,我建议您首先仔细考虑是否真正需要这个有效的全局列表,以及是否需要它成为类对象的一部分。就我个人而言,我几乎从来没有做过这样的事情。