J'ai la classe A
qui est supposé hériter de la classe B
dont le nom n'est pas encore connu au moment de l'écriture A
. Est-il possible de déclarer A
ne héritant de rien et d'ajouter B
comme classe de base pendant l'instanciation de A
? Exemple:Définir dynamiquement l'héritage en Python
fichier Première
class B:
def __init__(self):
self.__name = "Class B"
def name(self):
return self.__name
fichier Deuxième
class A:
def __init__(self):
self.__name = "Class A"
# At some point here, the appropriate module name and location is discovered
import sys
sys.path.append(CustomModulePath)
B = __import__(CustomModuleName)
magic(A, B) # TODO What should magic() do?
a = A()
print a.name() # This will now print "Class A", since name() is defined in B.
Pouvez-vous expliquer pourquoi vous avez besoin de faire cela? – danben
Dans cette application, j'ai besoin de manipuler les classes basées sur les métadonnées spécifiques à l'application, pas par des noms de classes ordinaires. – dpq