Rozwiązywanie konfliktów metaklasy
Muszę utworzyć klasę, która używa innej klasy bazowej w zależności od pewnych warunków. W przypadku niektórych klas otrzymuję niesławny:
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
Jednym z przykładów jestsqlite3
, oto krótki przykład, którego możesz użyć nawet w tłumaczu:
>>> 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