我找不到关于何时类可以引用自身的任何文档。在下面它将失败。这是因为该类已经创建但直到__init__
的第一行之后才初始化,对吗?
class A(object):
class_var = 'Hi'
def __init__(self, var=A.class_var):
self.var = var
所以在我想做的用例中,这是最好的解决方案:
class A(object):
class_var = 'Hi'
def __init__(self, var=None)
if var is None:
var = A.class_var
self.var = var
感谢任何帮助或文档!
答案 0 :(得分:6)
随着时间的推移解释Python脚本。因此,当解释器输入__init__()
时,类变量A
尚未定义(您在其中),与self
相同(这是一个不同的参数,仅在函数体中可用)
然而,该类中的任何内容都是从上到下解释的,因此class_var
已定义,因此您只需使用该类。
class A(object):
class_var = 'Hi'
def __init__(self, var=class_var):
self.var = var
但我并不确定这会在不同的口译员中保持稳定......