"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Quelle est la différence entre les méthodes d’instance et les méthodes de classe en Python ?

Quelle est la différence entre les méthodes d’instance et les méthodes de classe en Python ?

Publié le 2024-11-06
Parcourir:522

What is the difference between instance methods and class methods in Python?

Méthodes de classe et d'instance

Le guide de style PEP 8 de Python recommande d'utiliser "self" pour les premiers arguments de la méthode d'instance et "cls" pour la classe premiers arguments de la méthode. Comprendre la distinction entre ces deux types de méthodes est crucial pour une programmation orientée objet efficace.

Méthodes d'instance

Les méthodes d'instance sont associées à des instances spécifiques d'une classe. Ils opèrent sur les données de l'instance et reçoivent généralement « self » comme premier argument. Lors de l'accès à une méthode d'instance comme, par exemple, object.method(), l'instance est automatiquement transmise à la méthode.

Par exemple, considérons la définition de classe suivante :

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

    def greet(self):
        print("Hello, my name is", self.name)

Ici, "greet()" est une méthode d'instance qui peut être invoquée sur n'importe quelle instance de la classe "Person" avec "object.greet( )".

Méthodes de classe

Les méthodes de classe, en revanche, sont associées à la classe elle-même plutôt qu'à des instances individuelles. Ils reçoivent "cls" comme premier argument, qui représente la classe. Les méthodes de classe sont utilisées pour les tâches qui concernent la classe dans son ensemble, telles que la création de nouvelles instances ou l'accès aux données au niveau de la classe.

L'extrait de code suivant illustre une méthode de classe :

class Math:
    @classmethod
    def sum(cls, a, b):
        return a   b

La méthode "Math.sum()" prend deux arguments qui sont additionnés et renvoyés. Puisqu'il s'agit d'une méthode de classe, vous pouvez l'invoquer directement en tant que Math.sum(1, 2) pour obtenir le résultat.

En comprenant la différence entre les méthodes d'instance et de classe, les développeurs peuvent exploiter efficacement toutes les capacités de l'objet Programmation orientée en Python.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3