Python dispose de la fonction intégrée type
et chaque instance possède également un __class__
attribut. Je croyais généralement qu'ils renvoyaient la même chose. Même la documentation des deux semble similaire :
instance.__class__
La classe à laquelle appartient une instance de classe.
y
type(object)
Avec un argument, renvoie le type d'un objet.
Toutefois, en abc.ABCMeta.__instancecheck__
il y a une vérification si elles sont identiques (légèrement raccourcies) :
subclass = instance.__class__
subtype = type(instance)
if subtype is subclass:
Quand cela ne sera-t-il plus le cas ? Quand est-ce que type(instance)
pas la même chose que instance.__class__
?