如何在Python中自引用一个类?

Jes*_*ose 2 python

我希望这个Template类能够接受自己和其他类型的子类type(i) in self._allowed_types.

class Template():
    _allowed_types = [str, Template, SafeHtml]
Run Code Online (Sandbox Code Playgroud)

上面的代码抛出了这个:

NameError: name 'Template' is not defined
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 6

在定义类之后添加类:

class Template():
    _allowed_types = [str, SafeHtml]

Template._allowed_types.append(Template)
Run Code Online (Sandbox Code Playgroud)

类主体,根据需要,运行可创建的类对象之前,这样的名字Template没有被定义还没有.但是,您可以在创建对象后始终更改类属性.