Я хочу создать подкласс двух классов Python: один из PyGObject и один из python3-dbus:
import gi
from gi.repository import GObject
import dbus.service
class Test(GObject.Object, dbus.service.Object):
pass
Однако я получаю следующую ошибку:
$ python3 test.py
Traceback (most recent call last):
File ".../test.py", line 5, in <module>
class Test(GObject.Object, dbus.service.Object):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
У меня естьуже выяснили, что это потому, что GObject.Object
и dbus.service.Object
имеют разные метаклассы, и мне нужно сделать их подклассом тоже:
class M_Test(gi.types.GObjectMeta, dbus.service.InterfaceType):
pass
class Test(GObject.Object, dbus.service.Object):
__metaclass__=M_Test
pass
Однако это не помогает, я продолжаю получать ту же ошибку,Возможно gi.types.GObjectMeta
и dbus.service.InterfaceType
не являются правильными метаклассами для GObject.Object
и dbus.service.Object
.Кто-нибудь знает, как сделать слияние метаклассов GObject.Object
и dbus.service.Object
?