Python est un langage orienté objet. Un objet est une structure qui peut contenir à la fois des propriétés (qui correspondent à des variables) et des méthodes (qui correspondent à des fonctions).
Un grand nombre d'objets sont prédéfinis dans Python. Pratiquement tous les types de données ont des structures d'objet, ainsi les chaines de caractères. A cela vient s'ajouter des objets spécifiques comme ceux contenus dans les divers bibliothèques de Python.
A titre d'exemple, voici une liste défini par :
maListe=[1,2,3]
La liste est un objet qui possède en particulier une propriété len
qui contient le nombre d'éléments de la liste. Pour y accéder il faut utiliser la notation pointée : len(maListe)
qui n'est pas l'ecritur habituelle. Les objets Liste
contiennent également toutes sortes de méthodes. Par exemple la méthode append
ajoute un élément à la fin du tableau, ainsi après exécution de l'instruction maListe.append(5)
la liste contiendra : [1,2,3,5]
.
On peut facilement créer ses propres objets pour regrouper dans une même structure des variables et des fonctions. Pour céer des objets en Python, on utilise les classes, qui regroupe la définition de l'objet et ses dufférentes méthodes.
Voici l'exemple d'un code pour créer une classe :
class Complexe:
"""Une classe complexe sommaire"""
def __init__(self, re=0.0, im=0.0):
self._x,self._y = re,im
def arg(self):
return atan2(self._x,self._y)
(1) class
est un mot clé, Complexe le nom de la classe. Cette ligne alerte l’interpréteur :
je veux créer un objet Python de type class, une nouvelle classe (et non pas un objet
de type Complexe qui, lui, sera créé plus loin). La classe Complexe hérite de la classe
object, c’est à dire que tous les attributs de la classe object peuvent être utilisés par
notre nouvelle classe.
(2) un docstring pour expliquer le fonctionnement
(3) la première méthode est un constructeur (méthode spéciale) : __init__ ses trois arguments sont :
self
: désigne l’objet non encore instancié, de type Complexe, qui appelera cette méthode. Autrement dit, self
est un Complexe, qui n’existe pas encore.Il y a création de deux attributs_x et _y, dans self. Ces attributs prendront corps en même temps que self, lorsque un Complexe sera instancié.
(4) arg() est une méthode qui calcule l’argument. L’argument self prendra la valeur Complexe z lorsque sera exécutée l’instruction z.arg()