Il ne faut pas appeler une fonction pour demander son type à un objet. Il suffit de regarder son attribut __class__
Cette logique d'avoir des attributs particulier (en "double underscore" nom "double underscore") et des fonctions pour simplifier les appel est classique en python:
__str__(self) pour str(obj)
__repr__(self) pour repr(obj)
__abs__(self) pour abs(obj)
__doc__ pour help(obj)
__nonzero__ pour bool(obj) (en python3 c'est __bool__)
__getattr__(self, name) et __getattribute__(self, name) pour getattr(obj, name) ou obj.name
__add__(self, other) pour obj+other
...
À part l'incohérence de nom entre class et type(), je trouve au contraire que le fonctionnement est très cohérent avec le reste de python.
[^] # Re: python et django?
Posté par GaMa (site web personnel) . En réponse au journal S’il vous plaît... architecture-moi un Kanboard !. Évalué à 1.
Enfin, là tu te contredis toi-même.
Il ne faut pas appeler une fonction pour demander son type à un objet. Il suffit de regarder son attribut __class__
Cette logique d'avoir des attributs particulier (en "double underscore" nom "double underscore") et des fonctions pour simplifier les appel est classique en python:
À part l'incohérence de nom entre class et type(), je trouve au contraire que le fonctionnement est très cohérent avec le reste de python.
Matthieu Gautier|irc:starmad