Comment obtenir le nom de la classe concrète sous forme de chaîne?

Je veux éviter d’appeler beaucoup de fonctions isinstance() , donc je cherche un moyen d’obtenir le nom concret de la classe d’une variable d’instance en tant que chaîne.

Des idées?

  instance.__class__.__name__ 

Exemple:

 >>> class A(): pass >>> a = A() >>> a.__class__.__name__ 'A' 
 .__class__.__name__ 

vous pouvez également créer un dict avec les classes elles-mêmes en tant que clés, pas nécessairement les noms de classes

 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 vaudrait mieux utiliser la «vraie» POO