Programmation Orientée Objet

Classes

Création et instanciation d’une classe

Un classe se crée à l’aide du mot clé class puis s’instancie en utilisant directement son nom.

class MaClasse:
  ...

object = MaClasse()
Variables d’instance et constructeur

Contrairement à d’autres langages, en Python, les attributs n’ont pas besoin d’être déclarés en avance. Ils peuvent simplement être définis au niveau du constructeur, lui-même définit avec la méthode __init__.

class MaClasse:
  def __init__(self, var1, var2 = "value2")
    self.var1 = var1
    self.var2 = var2

object = MaClasse(var1 = "value1")
Méthodes d’instance

Les méthodes d’instance se définissent au sein de la classe comme des méthodes classiques et suivent les même conventions.

Info

En Python, les méthodes d’instance incluent toujours en 1er paramètre l’instance de la classe, noté par convention self. Il n’y a pas de this “implicite”.

class MaClasse:
  def une_methode(self):
    <instructions>

object = MaClasse()
object.une_methode()

Il est possible d’appeler une autre méthode d’instance depuis une méthode à l’aide de self :

class MaClasse:
  def une_methode(self, var):
    <instructions>

  def une_autre_methode(self):
    <instructions>
    self.une_methode(var)
    <instructions>
Méthodes privées

Python n’a pas de notion de scope et donc de méthodes ou d’attributs privés. Cependant, par convention les attributs et méthodes commençant par un underscore (_) sont considérés comme privés.

class MaClasse:
  def __init__(self):
    _attribut_prive = 1

  def _methode_privee(self):
    <instructions>