Nous parlons d’objets pour désigner la même chose que des valeurs, Python étant un langage de programmation orienté Objet. Nous considérons de la même manière, comme des objets, un nombre, une chaîne de caractères, une liste de valeurs, une matrice pour des traitements mathématiques, etc. Les éléments de code eux-même, tels que la fonction, le module (ensemble de fonctions), et la classe d’objets, sont vus comme des objets. Bien sûr, le développeur peut définir de nouvelles classes d’objets, pour obtenir des objets qui n’existent pas par défaut.
La première chose à retenir ici, c’est que dans Python, tout ce que nous manipulons est objet.
Un exemple
Prenons une chaîne de caractères, « Bonjour ».
>>> bj = « Bonjour »
>>> type(bj)
<type ‘str’>
Un équivalent de cette utilisation de type() existe avec :
>>> bj = « Bonjour »
>>> bj.__class__
<type ‘str’>
Ce que nous venons de voir, c’est que « Bonjour » un représentant de la classe str, une classe qui définit le comportement de chaînes de caractères. Cette classe définit des attributs pour ses objets, dont l’attribut __class__ qui contient comme valeur la classe elle-même. Notez que je peux utiliser .__class__.__name__ pour obtenir le nom de la classe (ici la chaîne « str »). Vous voyez là comment un programmeur Python « pense ». Et même, comment il pense, à travers le paradigme Objet.
Connaître ses objets grâce à l’introspection
Un des outils les plus utiles dans notre quotidien, c’est la fonction dir() fournie par Python. Quand vous passez n’importe quoi (donc un objet) à cette fonction, vous obtenez la liste des éléments faisant partie de la structure, du point de vue Objet, de cet élément. Une technique appelée « Introspection d’objet » et qui aide le programmeur à connaître les objets qu’il manipule.
Par exemple, nous pouvons l’utiliser pour la chaîne « Bonjour ».
Comme vous le voyez, cela nous permet de retrouver la liste des attributs disponibles sur cet objet, tels que __class__, __doc__, lower, upper, format, find, replace, ou isdigit.
Conclusion
C’était un aperçu rapide de techniques liées à l’Objet dans Python. Notre but ici n’était pas d’entrer dans les détails de la définition des classes, mais d’aider à établir une intuition sur les objets. Tout étant objet dans Python, nous sommes tout le temps entrain de manipuler des objets, même sans y penser. En cas de besoin, la fonction dir() nous sert quasi systématiquement à obtenir des informations utiles pour avancer dans l’écriture ou la compréhension de code.