La réutilisation de code avec l'héritage

Étude de cas : créer des logiciels en Python

Mark Pedigo

Principal Data Scientist

Feuille de route

Feuille de route montrant les parties du projet terminées et celles à démarrer.

Étude de cas : créer des logiciels en Python

Bilan de vos réalisations jusqu'ici

  • BasicCalculator()
    • Opérations arithmétiques de base
  • FinancialCalculator
    • Hérite de BasicCalculator
    • Méthode de calcul financier
class BasicCalculator:
  def multiply(self, x, y):
      result = x * y
      return result
  ...
# Child of BasicCalculator
class FinancialCalculator(BasicCalculator):
    def monthly_interest(self, annual_interest_rate):
        return self.divide(annual_interest_rate, 12)
    ...
Étude de cas : créer des logiciels en Python

La réutilisation de code avec l'héritage

  • Héritage pour réutiliser du code
    • Réutiliser le code d'une classe parente
  • Hiérarchie de classes
    • De l'enfant au « petit-enfant »
  • Structure flexible
    • Concevoir une hiérarchie claire et flexible
Étude de cas : créer des logiciels en Python

Autres types d'héritage

  • Héritage multiniveau
    • Une classe hérite d'une sous-classe d'une autre classe
    • Utilisé dans l'étude de cas : de BasicCalculator à FinancialCalculator à MortgageCalculator
  • Héritage hiérarchique
    • Plusieurs classes héritent de la même classe parente
  • Héritage multiple
    • Une classe hérite de deux classes ou plus non liées
Étude de cas : créer des logiciels en Python

Utiliser super()

  • Accéder aux méthodes et propriétés parentes
    • Utiliser super() sans nommer directement la classe parente
  • Gérer l'héritage complexe
    • Évite la duplication et les erreurs dans les hiérarchies
class Animal:
    def __init__(self, name):
        self.name = name
class Dog(Animal):
    def __init__(self, name):
          # super calls __init__ 
          # method from parent class
          super().__init__(name)
Étude de cas : créer des logiciels en Python

Passons à la pratique !

Étude de cas : créer des logiciels en Python

Preparing Video For Download...