Разрешение конфликтов метаклассов

Мне нужно создать класс, который использует другой базовый класс в зависимости от некоторых условий. С некоторыми классами я получаю печально известный:

TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

Одним из примеров является sqlite3, вот короткий пример, который вы даже можете использовать в интерпретаторе:

>>> import sqlite3
>>> x = type('x', (sqlite3,), {})
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
36
задан NirIzr 11 August 2018 в 04:35
поделиться