Я занимаюсь маринованием (легким) и неприемлемым классом, унаследованным от 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'