Распаковка класса с множественным наследованием (частично наследуется от класса c ++ в оболочке pybind11) - PullRequest
0 голосов
/ 26 сентября 2018

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