【发布时间】:2014-12-27 00:17:03
【问题描述】:
我正在使用 PyGOBject 创建一个 Python3 应用程序,用于其 Gtk3 和 Gstreamer 绑定。我的一个类需要有一个属性引用该类的同一类型(或子类)的实例
from gi.repository import GObject
class Cue(GObject.GObject):
# ...
autofollow_target = GObject.Property(type=Cue, default=None)
# ...
def __init__(self):
GObject.GObject.__init__(self)
但是,python 解析器会针对这段特定的代码片段返回以下错误:
NameError: name 'Cue' is not defined
我猜这与 python 如何创建它的类有关,因为我能够创建一个不同的自定义类型的属性。
【问题讨论】:
-
类的名称在类被完全定义之前是未知的。您可以在超级调用后在 init 方法中创建 autofollow_target