Maison  >  Article  >  développement back-end  >  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 ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 03:49:02597parcourir

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 :

<code class="python">class Person:
    def __init__(self, name):
        self.name = name

    def greet(self):
        print("Hello, my name is", self.name)</code>

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

Méthodes de classe, sur d'autre part, sont associés à 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 :

<code class="python">class Math:
    @classmethod
    def sum(cls, a, b):
        return a + b</code>

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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn