Comment utiliser une chaîne contenant un nom de classe pour référencer une classe elle-même?
Voir ce (ne fonctionne pas) ... exemplePython: référence à une classe à partir d'une chaîne?
class WrapperClass:
def display_var(self):
#FIXME: self.__class_name__.__name__ is a string
print self.__class__.__name__.the_var
class SomeSubClass(WrapperClass):
var = "abc"
class AnotherSubClass(WrapperClass):
var = "def"
Et un message d'erreur évidente:
>>> b = SomeSubClass() >>> b.display_var() Traceback (most recent call last): File "", line 1, in File "", line 4, in display_var AttributeError: 'str' object has no attribute 'the_var' >>>
Merci!
+1 bien expliqué –
hmmm: "la variable 'X' sera une référence" Pas précisément. L'identificateur "X" est l'objet de classe lui-même, et peut être utilisé partout où une constante serait utilisée. –
En effet. Ce que j'essaie de décrire dans un anglais maladroit, c'est que tandis que X est l'objet de classe, c'est juste une référence; Si vous avez assigné quelque chose d'autre à "X" alors ce ne sera plus le cas. Le point important est que dans Python, le nom 'X' ne devient pas spécial; c'est juste une autre variable. – bobince