Je veux éviter d’appeler beaucoup de fonctions isinstance()
, alors je cherche un moyen d’obtenir le nom de classe concret d’une variable d’instance sous forme de chaîne.
Des idées?
Je veux éviter d’appeler beaucoup de fonctions isinstance()
, alors je cherche un moyen d’obtenir le nom de classe concret d’une variable d’instance sous forme de chaîne.
Des idées?
vous pouvez également créer un dict avec les classes elles-mêmes comme clés, pas nécessairement les noms de classe
typefunc={
int:lambda x: x*2,
str:lambda s:'(*(%s)*)'%s
}
def transform (param):
print typefunc[type(param)](param)
transform (1)
>>> 2
transform ("hi")
>>> (*(hi)*)
Ici, typefunc
est un dict qui mappe une fonction pour chaque type. transform
obtient cette fonction et l'applique au paramètre.
bien sûr, il serait bien préférable d'utiliser de la «vraie» POO
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.