Anatomie d'une classe : attributs et méthodes

Programmation orientée objet en Python

Alex Yarosh

Content Quality Analyst @ DataCamp

Une classe de base

class Customer:

# code pour la classe ici
pass
  • class <name>: commence une définition de classe
  • le code à l'intérieur de class est indenté
  • utilisez pass pour créer une classe "vide"
c1 = Customer()
c2 = Customer()
  • utilisez ClassName() pour créer un objet de la classe ClassName
Programmation orientée objet en Python

Ajouter des méthodes à une classe

class Customer:  

    def identify(self, name):   
      print("Je suis le client " + name)
  • définition de méthode = définition de fonction dans une classe
  • utilisez self comme 1er argument dans la définition de méthode
cust = Customer()
cust.identify("Laura")
Je suis le client Laura
  • ignorez self lors de l'appel d'une méthode sur un objet
Programmation orientée objet en Python
class Customer:  

    def identify(self, name):   
      print("Je suis le client " + name)

cust = Customer()
cust.identify("Laura")

Qu'est-ce que self ?

  • les classes sont des modèles, comment référencer les données d'un objet particulier ?
  • self est un substitut pour un objet particulier utilisé dans la définition de classe
  • doit être le premier argument de toute méthode
  • Python gère self lors de l'appel d'une méthode depuis un objet :

cust.identify("Laura") sera interprété comme Customer.identify(cust, "Laura")

Programmation orientée objet en Python

Nous avons besoin d'attributs

  • Encapsulation : regrouper les données avec les méthodes qui les manipulent
  • Par ex. le nom du Customer devrait être un attribut

  $$\text{\Large{Les attributs sont créés par affectation (=) dans les méthodes}}$$

Programmation orientée objet en Python

Ajouter un attribut à la classe

class Customer:  
    # définir l'attribut name d'un objet à new_name
    def set_name(self, new_name):

# Créer un attribut en assignant une valeur self.name = new_name # <-- créera .name lorsque set_name est appelé
cust = Customer()                   # <--.name n'existe pas encore ici

cust.set_name("Lara de Silva") # <--.name est créé et défini à "Lara de Silva"
print(cust.name) # <--.name peut être utilisé
Lara de Silva
Programmation orientée objet en Python

Ancienne version

class Customer:  



    # Utilisation d'un paramètre
    def identify(self, name):   
      print("Je suis le client" + name)
cust = Customer()

cust.identify("Eris Odoro")
Je suis le client Eris Odoro

Nouvelle version

class Customer:  
   def set_name(self, new_name): 
      self.name = new_name

    # Utilisation de .name de l'objet lui-même
    def identify(self):     
      print("Je suis le client" + self.name)
cust = Customer()
cust.set_name("Rashid Volkov")
cust.identify()
Je suis le client Rashid Volkov
Programmation orientée objet en Python

Passons à la pratique !

Programmation orientée objet en Python

Preparing Video For Download...