0Pricing
Python Academy · Leçon

Polymorphisme

Découvrez comment le polymorphisme permet d’écrire un code flexible et dynamique.

Polymorphisme est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 6. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 6 leçons au total.

Introduction au polymorphisme

Introduction au polymorphisme

Le polymorphisme est un concept fondamental de la programmation orientée objet (POO) qui permet de traiter des objets de classes différentes comme des objets d’une superclasse commune. Il apporte souplesse et réutilisabilité au code.

Dans cette leçon, vous apprendrez à mettre en œuvre le polymorphisme en Python à l’aide de méthodes et de classes.

Polymorphisme — illustration 1

Qu’est-ce que le polymorphisme ?

Qu’est-ce que le polymorphisme ?

Le polymorphisme permet aux méthodes de différentes classes de porter le même nom tout en ayant des comportements différents. Il rend le code plus flexible et plus facile à étendre.

# Defining a superclass
class Animal:
    # Method in the superclass
    def speak(self):
        print("Animal speaks")  # Generic message for all animals

# Defining a subclass that overrides the speak method
class Dog(Animal):
    def speak(self):
        print("Dog barks")  # Specific behavior for Dog

Polymorphisme avec des méthodes

Polymorphisme avec des méthodes

Des méthodes portant le même nom dans différentes classes peuvent fournir des implémentations différentes.

# Another subclass with its own implementation of the speak method
class Cat(Animal):
    def speak(self):
        print("Cat meows")  # Specific behavior for Cat

# Function demonstrating polymorphism
# It can accept objects of any subclass of Animal

def animal_sound(animal):
    animal.speak()  # Calls the appropriate speak method based on the object type

# Creating objects of Dog and Cat
dog = Dog()
cat = Cat()

# Calling the function with different objects
animal_sound(dog)  # Outputs: Dog barks
animal_sound(cat)  # Outputs: Cat meows

Exemple de polymorphisme avec des méthodes

Polymorphisme avec des méthodes

Des méthodes portant le même nom dans différentes classes peuvent fournir des implémentations différentes.

# Another subclass with its own implementation of the speak method
class Cat(Animal):
    def speak(self):
        print("Cat meows")  # Specific behavior for Cat

# Function demonstrating polymorphism
# It can accept objects of any subclass of Animal

def animal_sound(animal):
    animal.speak()  # Calls the appropriate speak method based on the object type

# Creating objects of Dog and Cat
dog = Dog()
cat = Cat()

# Calling the function with different objects
animal_sound(dog)  # Outputs: Dog barks
animal_sound(cat)  # Outputs: Cat meows

Polymorphisme avec des fonctions

Polymorphisme avec des fonctions

Le polymorphisme permet à une même fonction de fonctionner sur des objets de types différents.

# Defining two unrelated classes
class Bird:
    def fly(self):
        print("Bird flies")  # Behavior specific to birds

class Plane:
    def fly(self):
        print("Plane flies")  # Behavior specific to planes

# Function demonstrating polymorphism
# It can accept objects of both Bird and Plane

def flying_object(obj):
    obj.fly()  # Calls the appropriate fly method based on the object type

# Creating objects of Bird and Plane
bird = Bird()
plane = Plane()

# Calling the function with different objects
flying_object(bird)  # Outputs: Bird flies
flying_object(plane)  # Outputs: Plane flies

Polymorphisme avec l’héritage

Polymorphisme avec l’héritage

Le polymorphisme est souvent obtenu grâce à l’héritage, lorsque les sous-classes redéfinissent les méthodes de la superclasse.

# Superclass representing a generic vehicle
class Vehicle:
    def start(self):
        print("Vehicle starts")  # Generic behavior for all vehicles

# Subclass representing a specific type of vehicle
class Car(Vehicle):
    def start(self):
        print("Car starts")  # Specific behavior for cars

# Subclass representing another specific type of vehicle
class Bike(Vehicle):
    def start(self):
        print("Bike starts")  # Specific behavior for bikes

# Function demonstrating polymorphism
# It can accept objects of any subclass of Vehicle

def start_vehicle(vehicle):
    vehicle.start()  # Calls the appropriate start method based on the object type

# Creating objects of Car and Bike
car = Car()
bike = Bike()

# Calling the function with different objects
start_vehicle(car)  # Outputs: Car starts
start_vehicle(bike)  # Outputs: Bike starts

Avantages du polymorphisme

Avantages du polymorphisme

Le polymorphisme offre plusieurs avantages :

  • Réutilisabilité et flexibilité du code.
  • Amélioration de la lisibilité et de l’organisation du code.
  • Il encourage l’utilisation d’interfaces communes.

Exemple du monde réel

Exemple du monde réel

Voici un exemple du monde réel utilisant le polymorphisme.

# Real-world example of polymorphism
class Developer:
    def work(self):
        print("Writing code")  # Specific task for developers

class Designer:
    def work(self):
        print("Designing user interfaces")  # Specific task for designers

# Function demonstrating polymorphism
# It can accept objects of both Developer and Designer

def workday(employee):
    employee.work()  # Calls the appropriate work method based on the object type

# Creating objects of Developer and Designer
developer = Developer()
designer = Designer()

# Calling the function with different objects
workday(developer)  # Outputs: Writing code
workday(designer)  # Outputs: Designing user interfaces

Erreurs courantes avec le polymorphisme

Erreurs courantes avec le polymorphisme

Voici quelques erreurs à éviter :

  • Oublier de redéfinir les méthodes dans les sous-classes lorsque cela est nécessaire.
  • Confondre l’ordre de résolution des méthodes (MRO) en cas d’héritage multiple.
  • Utiliser le polymorphisme sans nécessité pour des tâches simples.

Qu’avons-nous appris ?

Qu’avons-nous appris ?

Dans cette leçon, vous avez appris :

  • Ce qu’est le polymorphisme et comment il fonctionne en Python.
  • Comment mettre en œuvre le polymorphisme à l’aide de méthodes et de l’héritage.
  • Les avantages de l’utilisation du polymorphisme en POO.

Excellent travail ! Passons au sujet suivant.

Polymorphisme — illustration 12

Questions Fréquemment Posées

La leçon « Polymorphisme » est-elle gratuite ?

Oui — le texte complet de « Polymorphisme » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 6 leçons au total.

Qu'est-ce que j'apprendrai dans « Polymorphisme » ?

Découvrez comment le polymorphisme permet d’écrire un code flexible et dynamique. Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 6.

Combien de temps prend la leçon « Polymorphisme » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Classes et objets
  2. Attributs et méthodes
  3. Héritage
  4. Polymorphisme
  5. Encapsulation et abstraction
  6. Méthodes magiques (__str__, __repr__, etc.)
← Retour à Python Academy