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 :
Ensuite j'ai une classe qu'on appellera : "car" et qui hérite de vehicleQtCore.QObject < MyObject < vehicle
QtCore.QObject < MyObject < vehicle < car
Puis j'ai des classes: vehicle_v11, vehicle_v12..
QtCore.QObject < MyObject < vehicle < vehicle_v11Et en gros moi je veux instancier dynamiquement des versions de "car" mais avec du double héritage.QtCore.QObject < MyObject < vehicle < vehicle_v12
Si je déclare ceci
Et que j'instancie ma classe ça fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 class Car_v12(car.car, vehicle_v12.vehicle_v12): pass
EN revanche si je veux m'éviter de creer des modules/classes creuses pour toutes les versions et que je veux faire ça dynamiquement
et j'ai le message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CL = type("Car_v12", ("car.car","vehicle_v12.vehicle_v12"), {})
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:
j'ai le message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CL = type("Car_v23", ("vehicle",), {})
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:
Je serai vraiment intéressé si quelqu'un pouvait m'éclairer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CL = type("Car_v23", ("car",), {})
Merci par avance
Partager