Я использую классы для перебора (простой) и разборки, которые происходят от 2 родителей: 1 класса только для Python (который предоставляет некоторые дополнительные леса) и класса c ++ в оболочке pybind11.
Так как мне нужно сделать некоторые приготовления перед __setstate__
называется (расстойка обхода __init__
), Я должен переопределить __new__
производного класса. Как мне это сделать, в частности, какой базовый класс? __new__
должен быть вызван?
class Derived(CxxBase,PyBase):
@staticmethod
def __new__(klass):
# will this call __new__ from CxxBase or PyBase?
# and which one should be called?
instance=super(Derived,klass).__new__(klass)
# define some attributes dynamically, and so on
instance.attribute='foo'
Задача ещё не решена.
Других решений пока нет …