Learn AI with Python · Leçon

Polymorphisme

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

Leçon 4 sur 612 étapes

Polymorphisme est une leçon Learn AI with Python 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 Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 6 leçons au total.

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 même superclasse. Il apporte flexibilité et réutilisabilité au code.

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

Polymorphisme — illustration 1

Qu'est-ce que le polymorphisme ?

Le polymorphisme permet à des méthodes de classes différentes de porter le même nom tout en se comportant différemment. 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 with des méthodes

Des méthodes portant le même nom dans des classes différentes peuvent proposer 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 with des méthodes

Des méthodes portant le même nom dans des classes différentes peuvent proposer 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 with des fonctions

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

# 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 with 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

Le polymorphisme offre plusieurs avantages :

  • Réutilisation et flexibilité du code.
  • Amélioration de la lisibilité et de l’organisation du code.
  • Encouragement à utiliser des interfaces communes.

Exemple concret

Voici un exemple concret 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

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) dans l'héritage multiple.
  • Utiliser le polymorphisme inutilement pour des tâches simples.

Qu’avez-vous appris ?

Dans cette leçon, vous avez appris :

  • Ce qu’est le polymorphisme et comment il fonctionne en Python.
  • Comment implémenter le polymorphisme avec des méthodes et l’héritage.
  • Les avantages de l’utilisation du polymorphisme en POO.

Excellent travail ! Passons au sujet suivant.

Polymorphisme — illustration 12
Gratuit pour commencer

Apprends Python avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
53
Leçons
225

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 Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 6 leçons au total.

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

Découvrez comment le polymorphisme permet d’écrire un code souple et dynamique Tu pratiques Learn AI with Python 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 Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python 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 Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python 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 à Learn AI with Python