Programmation Orientée Objet en Python
  • Back to Main Website
  • Home
  • Introduction: Histoire et Concepts
    • Introduction: Histoire et Concepts
    • Histoire de la programmation
    • Première Structuration des données
    • Naissance de la POO
    • Python: tout n’est qu’objet
    • Python : Simplicité des objets et performance sous-jacente
    • Classes en Python : Concepts fondamentaux

    • Travaux Pratiques
    • Construire sa propre Liste
    • Construire son propre DataFrame
  • Encapsulation, Héritage, Composition et Dunder
    • Encapsulation, Heritage, Composition et Dunder
    • Encapsulation en Python
    • Héritage en Python : Concept et intérêt
    • Héritage vs Composition
    • Méthodes Dunder en Python
    • Python call Method: A Fun Exploration

    • Travaux Pratiques
    • TP: Heritage avec le pricing d’option
    • TP : Ajouter des méthodes dunder à DataFrameSimple
    • TP : Étendre la classe Liste avec des méthodes dunder
    • TP: Dunder Method with Tensor for Automatic Differentiation
  • Polymorphisme et Surcharge
    • Polymorphisme et Surcharge
    • Polymorphism in Object-Oriented Programming
    • Polymorphism in Python: Function Overloading and Type Checking
    • Class Creation: Standard vs type()
    • Type Hinting, Typing Module, and Linters in Python
    • Abstract Classes
    • Protocol Classes

    • Travaux Pratiques
    • TP
  • Decorators
    • Design Patterns
    • The decorator pattern
    • Decorator Practically
    • Built-in Decorators and Standard Library Decorators in Python
    • Practical Decorators in Python Libraries

    • Travaux Pratiques
    • TP: Monte Carlo Option Pricing with Decorators
    • TP: Optimizing Heston Model Monte Carlo Simulation
  • Project Management and Packaging
    • Project and Package
    • Organizing Python Projects
    • Understanding imports
    • Python Package Management and Virtual Environments
    • Unit Testing in Python

    • Travaux Pratiques
    • TP: Creating a Linear Regression Package
  • Design Patterns
    • OOP Design Patterns
    • Python-Specific Design Patterns
    • Creation Design Patterns
    • Structural Design Patterns
    • Behavioral Design Pattern

    • Travaux Pratiques
    • TP
  • Sujets de Projets possibles
    • Projets
    • Projets POO - 2024-2025
  • Code source
  1. Méthodes Dunder en Python
  • Encapsulation, Heritage, Composition et Dunder
  • Encapsulation en Python
  • Héritage en Python : Concept et intérêt
  • Héritage vs Composition
  • Méthodes Dunder en Python
  • Python call Method: A Fun Exploration
  • Travaux Pratiques
    • TP: Heritage avec le pricing d’option
    • TP : Ajouter des méthodes dunder à DataFrameSimple
    • TP : Étendre la classe Liste avec des méthodes dunder
    • TP: Dunder Method with Tensor for Automatic Differentiation

On this page

  • Les méthodes dunder en Python
    • 1. Initialisation et destruction
    • 2. Représentation des objets
    • 3. Opérations mathématiques
    • 4. Comparaisons
    • 5. Conteneurs et séquences
    • 6. Gestion des attributs
    • 7. Appel de l’objet comme une fonction
    • 8. Gestion du contexte
    • 9. Autres méthodes dunder utiles

Méthodes Dunder en Python

Cours
Fondamentaux
Découvrez les méthodes dunder en Python, des méthodes spéciales encadrées par des doubles tirets bas (__), qui permettent de personnaliser le comportement des objets dans différents contextes. Apprenez comment utiliser les méthodes dunder pour l’initialisation, la représentation, les opérations mathématiques, les comparaisons, les conteneurs, la gestion des attributs, l’appel d’objet comme une fonction, la gestion du contexte, et d’autres cas d’utilisation.
Author

Remi Genet

Published

2024-10-21

Les méthodes dunder en Python


Les méthodes dunder sont encadrées par des doubles tirets bas (__) et sont appelées automatiquement par Python dans certaines circonstances.

1. Initialisation et destruction

init(self, …)

  • Appelée lors de la création d’une instance.
  • Initialise les attributs de l’objet.

del(self)

  • Appelée lorsque l’objet est sur le point d’être détruit.
  • Utile pour le nettoyage de ressources.

2. Représentation des objets

str(self)

  • Retourne une représentation lisible de l’objet.
  • Utilisée par str() et print().

repr(self)

  • Retourne une représentation “officielle” de l’objet.
  • Utilisée par repr() et dans l’interpréteur interactif.

3. Opérations mathématiques

add(self, other), sub(self, other), mul(self, other), truediv(self, other)

  • Définissent les opérations +, -, *, / respectivement.

floordiv(self, other), mod(self, other), pow(self, other)

  • Définissent les opérations //, %, ** respectivement.

4. Comparaisons

eq(self, other), ne(self, other)

  • Définissent == et != respectivement.

lt(self, other), le(self, other), gt(self, other), ge(self, other)

  • Définissent <, <=, >, >= respectivement.

5. Conteneurs et séquences

len(self)

  • Retourne la longueur de l’objet.
  • Utilisée par la fonction len().

getitem(self, key)

  • Permet l’accès par index ou clé.
  • Utilisée pour l’indexation obj[key].

setitem(self, key, value)

  • Permet l’assignation par index ou clé.

iter(self)

  • Retourne un itérateur pour l’objet.

6. Gestion des attributs

getattr(self, name)

  • Appelée lorsqu’un attribut non trouvé est accédé.

setattr(self, name, value)

  • Appelée lors de l’assignation d’un attribut.

delattr(self, name)

  • Appelée lors de la suppression d’un attribut.

7. Appel de l’objet comme une fonction

call(self, …)

  • Permet d’appeler l’objet comme une fonction.

8. Gestion du contexte

enter(self), exit(self, exc_type, exc_value, traceback)

  • Utilisées pour le gestionnaire de contexte (with statement).

9. Autres méthodes dunder utiles

  • bool(self): Définit le comportement pour bool().
  • hash(self): Permet à l’objet d’être utilisé comme clé de dictionnaire.
  • format(self, format_spec): Personnalise le formatage de chaînes.

Cette liste, bien que non exhaustive, couvre la plupart des méthodes dunder couramment utilisées en Python. Chacune de ces méthodes permet de personnaliser le comportement des objets dans différents contextes, rendant le langage extrêmement flexible et puissant.

Back to top
Héritage vs Composition
Python call Method: A Fun Exploration

Programmation Orienté Object en Python, Rémi Genet.
Licence
Code source disponible sur Github

 

Site construit avec et Quarto
Inspiration pour la mise en forme du site ici
Code source disponible sur GitHub