Héritage de classe

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 excellents pour des fonctionnalités fixes
  • L'OOP est idéal pour personnaliser les fonctionnalités

logos de plusieurs packages python

Programmation orientée objet en Python

Réutilisation de code

 

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

 

2. DRY : Ne vous répétez pas

divers éléments d'interface utilisateur

Programmation orientée objet en Python

Réutilisation de code

 

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

 

2. DRY : Ne vous répétez pas

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

Programmation orientée objet en Python

Héritage

 

$$\Large{\text{Nouvelle classe = Ancienne classe + extra}}$$

Programmation orientée objet en Python

classe compte

Programmation orientée objet en Python

compte é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 compte courant

Programmation orientée objet en Python

Implémentation de l'héritage de classe

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

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

# Classe vide héritée de BankAccount
class SavingsAccount(BankAccount):
    pass

class MyChild(MyParent):
   # Faites quelque chose ici
  • MyParent: classe dont la fonctionnalité est étendue/héritée
  • MyChild: classe qui héritera de la fonctionnalité et en ajoutera d'autres
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

(possiblement avec des fonctionnalités spéciales)

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...