Comme une note de côté, alors que pas particulièrement recommandé, il est possible d'attribuer une valeur différente de self.__class__
- être que dans __init__
ou nulle part ailleurs. Notez que cela va changer les recherches pour les noms au niveau de la classe (comme les méthodes), mais en soi ça ne changera pas l'état de l'instance (ni invoquer implicitement n'importe quel type d'initialisation - vous devrez le faire explicitement si vous avez besoin ça arrive) ... ces subtilités font partie des raisons pour lesquelles de telles astuces ne sont pas particulièrement recommandées (avec le penchant culturel général des Pythonistes contre la "magie noire" ;-) et une "fonction d'usine" (qui dans des cas particulièrement simples peut être réduire à une recherche dict, comme dans la réponse de GHZ) est l'approche recommandée.
Ce code fonctionne. Quelle est votre question? –
Comme suggéré par GHZ, je veux lier mCar à Truck ou Compact à l'exécution en fonction de certaines conditions d'exécution. – WuJanJai
"certaine condition d'exécution"? Qu'est-ce que ça veut dire? Voulez-vous dire une déclaration if? Pouvez-vous donner un exemple de code de ce que vous essayez de faire? –