Méthodes d'instance ou de classe en Python : quand devez-vous utiliser \'self\' et \'cls\' ?

Mary-Kate Olsen
Libérer: 2024-10-26 03:01:28
original
279 Les gens l'ont consulté

  Instance vs. Class Methods in Python: When Should You Use

Plongée dans les nuances des méthodes de classe et d'instance : au-delà de soi par rapport aux Cls

La proposition d'amélioration de Python (PEP) 8 suggère l'utilisation de "self" comme premier argument dans les méthodes d'instance et "cls" comme premier argument dans les méthodes de classe. Cette distinction découle des différents rôles que jouent ces méthodes dans le travail avec les instances et les classes.

Méthodes d'instance : l'avantage personnel

Les méthodes d'instance sont invoquées sur les instances d'un classe. Ils interagissent généralement avec des attributs et un comportement spécifiques de cette instance particulière. Le premier paramètre de ces méthodes est self, qui représente l'instance sur laquelle la méthode est appelée.

Par exemple, la classe suivante définit une méthode d'instance « introduire » :

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

    def introduce(self):
        print("Hello, I am %s, and my name is %s" % (self, self.name))</code>
Copier après la connexion

Lorsque nous créons une instance de la classe Inst et appelons sa méthode "introduce", l'instance elle-même est passée en paramètre self, nous permettant d'accéder à ses attributs (dans ce cas, l'attribut "name").

Méthodes de classe : adoption de Cls

Les méthodes de classe, en revanche, opèrent sur la classe elle-même plutôt que sur des instances individuelles. Ils nous permettent de modifier ou d'inspecter la structure ou le comportement de la classe. Le premier paramètre de ces méthodes est cls, qui représente la classe sur laquelle la méthode est appelée.

L'exemple suivant illustre une méthode de classe :

<code class="python">class Cls:
    @classmethod
    def introduce(cls):
        print("Hello, I am %s!" % cls)</code>
Copier après la connexion

Cette méthode ne nécessite pas une instance car elle n'interagit pas avec des attributs d'objet spécifiques. Au lieu de cela, il opère sur la classe elle-même, fournissant des informations sur sa structure.

Les méthodes de classe sont particulièrement utiles lors de l'héritage d'une classe parent, car elles permettent à la classe enfant de modifier ou d'étendre le comportement de la classe parent. Par exemple, la sous-classe suivante remplace la méthode "introduce" de la classe Cls :

<code class="python">class SubCls(Cls):
    pass

SubCls.introduce()
# outputs: Hello, I am <class 'SubCls'></code>
Copier après la connexion

En utilisant "cls" comme premier paramètre, la méthode "introduce" peut être appelée directement sur la sous-classe, permettant pour définir son propre comportement tout en accédant aux propriétés héritées de la classe parent.

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!