La programmation Orientée Objet (POO) en Python

Variables vs Objets

Jusqu’à présent, nous parlions toujours de variables et nous les traitions comme des «boîtes», des conteneurs que nous utilisions pour stocker des valeurs qui nous convenaient, comme par exemple une valeur entière, une chaîne de caractères ou une liste. Celles-ci sont des espaces de mémoire nommées et réservées pour les valeurs dont nous avons besoin dans nos programmes.

A partir de maintenant, nous les traiterons comme elles sont vraiment : Des objets, qui nous donnent des autres avantages par rapport aux variables traditionnelles, qui nous sont données par Python avec un grand nombre de fonctionnalités additionnelles et qui nous rendent la vie beaucoup plus facile. Il ne s’agit plus des simples «boîtes», mais, comme je les appellerais plutôt, des «boîtes sous steroides».

En Python tout est objet. Python est même plus Orienté Objet que le langage Java, fameux paladin de la POO. Pour cette raison, chaque variable en python est en réalité un objet qui appartient à une classe bien définie, et ça c’est vrai pour toutes les variables.

C’est facile à prouver : Pour savoir la classe d’une variable a, il suffit d’imprimer son type :

a = «Bonjour»
print(type(a)) 
<class 'str'>

Une classe définit pour tous les objets qu’elle crée un certain nombre de :

  • attributs (ce sont des propriétés de l’objet telles que sa valeur ou sa couleur ou sa taille etc)

  • méthodes (ce sont des actions que nous pouvons faire exécuter par l’objet)

Il y a en outre des méthodes que nous pouvons faire exécuter par la classe sur notre objet ou sur n’importe quel objet de la classe.

A partir de ce petit morceau de connaissance, un nouveau monde nous ouvre ses portes. En sachant la classe d’une variable, on aura la possibilité de connaître touts ses attributs et ses méthodes en tapant :

help("class")

Par exemple pour la classe str :

help("str")

Grâce a cette commande, nous obtiendrons toute la documentation de la classe, avec ses méthodes et ses attributs. À continuer…