Bonjour,
je cherche à créer des classes qui héritent de 2 autres classes dynamiquement... mais je suis confronté au message suivant:

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

Voici mon code:

J'ai une classe qu'on appellera : "vehicle" et qui hérite de :
QtCore.QObject < MyObject < vehicle
Ensuite j'ai une classe qu'on appellera : "car" et qui hérite de vehicle
QtCore.QObject < MyObject < vehicle < car

Puis j'ai des classes: vehicle_v11, vehicle_v12..
QtCore.QObject < MyObject < vehicle < vehicle_v11
QtCore.QObject < MyObject < vehicle < vehicle_v12
Et en gros moi je veux instancier dynamiquement des versions de "car" mais avec du double héritage.
Si je déclare ceci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
class Car_v12(car.car, vehicle_v12.vehicle_v12):
     pass
Et que j'instancie ma classe ça fonctionne.
EN revanche si je veux m'éviter de creer des modules/classes creuses pour toutes les versions et que je veux faire ça dynamiquement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
CL = type("Car_v12", ("car.car","vehicle_v12.vehicle_v12"), {})
et j'ai le message d'erreur
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

Et même si je simplifie en faisant du monohéritage:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
CL = type("Car_v23", ("vehicle",), {})
j'ai le message d'erreur
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

idem si je fais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
CL = type("Car_v23", ("car",), {})
Je serai vraiment intéressé si quelqu'un pouvait m'éclairer.
Merci par avance