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

Susan Sarandon
Libérer: 2024-10-26 03:49:02
original
595 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!