Héritage de classes

Programmation orientée objet en Python

Alex Yarosh

Content Quality Analyst @ DataCamp

Réutilisation de code

Programmation orientée objet en Python

Réutilisation de code

 

1. Quelqu'un l'a déjà fait

 

  • Les modules sont idéaux pour des fonctions fixes
  • La POO est idéale pour adapter des fonctionnalités

logos de plusieurs forfaits Python

Programmation orientée objet en Python

Réutilisation de code

 

1. Quelqu'un l'a déjà fait

 

2. DRY : Don't Repeat Yourself

divers éléments d'interface graphique

Programmation orientée objet en Python

Réutilisation de code

 

1. Quelqu'un l'a déjà fait

 

2. DRY : Don't Repeat Yourself

n'utilisez pas divers éléments d'interface graphique

Programmation orientée objet en Python

Héritage

 

$$\Large{\text{Fonctionnalité de la nouvelle classe = fonctionnalité de l'ancienne classe + extra}}$$

Programmation orientée objet en Python

classe compte

Programmation orientée objet en Python

compte d'épargne hérité de compte

Programmation orientée objet en Python

deux classes héritées de compte

Programmation orientée objet en Python

méthode modifiée dans le compte chèque

Programmation orientée objet en Python

Mettre en œuvre l'héritage de classes

class BankAccount:
    def __init__(self, balance):
       self.balance = balance

    def withdraw(self, amount):
        self.balance -= amount

# Empty class inherited from BankAccount
class SavingsAccount(BankAccount):
    pass

class MyChild(MyParent):
   # Do stuff here
  • MyParent : classe dont on étend/hérite la fonctionnalité
  • MyChild : classe qui héritera de la fonctionnalité et en ajoutera
Programmation orientée objet en Python

La classe enfant possède toutes les données du parent

# Constructeur hérité de BankAccount
savings_acct = SavingsAccount(1000)
type(savings_acct)
__main__.SavingsAccount
# Attribut hérité de BankAccount
savings_acct.balance
1000
# Méthode héritée de BankAccount
savings_acct.withdraw(300)
Programmation orientée objet en Python

Héritage : relation « est un »

Un SavingsAccount est un BankAccount

(avec des fonctions propres, au besoin)

savings_acct = SavingsAccount(1000)
isinstance(savings_acct, SavingsAccount)
True
isinstance(savings_acct, BankAccount)
True

 

 

acct = BankAccount(500)
isinstance(acct,SavingsAccount)
False
isinstance(acct,BankAccount)
True
Programmation orientée objet en Python

Passons à la pratique !

Programmation orientée objet en Python

Preparing Video For Download...