X Tutup
Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 2.51 KB

File metadata and controls

63 lines (47 loc) · 2.51 KB
title Fonction intégrée classmethod() en Python - Fiche mémo Python
description Transforme une méthode en méthode de classe. Une méthode de classe reçoit la classe comme premier argument implicite, tout comme une méthode d'instance reçoit l'instance.
Fonction intégrée Python classmethod() Extrait de la documentation Python 3 Transforme une méthode en méthode de classe. Une méthode de classe reçoit la classe comme premier argument implicite, tout comme une méthode d'instance reçoit l'instance.

Introduction

Un classmethod est une méthode qui est liée à la classe et non à l'instance de la classe. Elle prend la classe elle-même comme premier argument, conventionnellement nommé cls. Ceci contraste avec une méthode d'instance régulière, qui prend l'instance comme premier argument (self).

Elles sont souvent utilisées pour des méthodes usine (factory methods) qui créent des instances de la classe d'une manière spécifique.

Exemple

Voici un cas d'utilisation courant : créer une méthode usine qui peut instancier la classe à partir d'un format de données différent, comme un dictionnaire.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    @classmethod
    def from_dict(cls, data):
        # Ceci est une méthode usine qui crée une instance Person à partir d'un dictionnaire
        return cls(data['name'], data['age'])

    def display(self):
        print(f"Name: {self.name}, Age: {self.age}")

# Données pour une nouvelle personne
person_data = {'name': 'John', 'age': 30}

# Créer une instance Person en utilisant la méthode de classe
p = Person.from_dict(person_data)

p.display()
Name: John, Age: 30

Liens pertinents

  • Cheatsheet : Bases de l'OOP
  • Cheatsheet : Décorateurs
  • Cheatsheet : Fonctions
  • staticmethod()
  • property()
  • object()
X Tutup