"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 > Méthodes d'instance ou de classe en Python : quand devez-vous utiliser \"self\" et \"cls\" ?

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

Publié le 2024-11-09
Parcourir:548

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

Plonger dans les nuances des méthodes de classe et d'instance : au-delà de soi contre 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 » :

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))

Lorsque nous créons une instance de la classe Inst et appelons sa méthode "introduce", le 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 : Embracing Les méthodes Cls

Class, 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 :

class Cls:
    @classmethod
    def introduce(cls):
        print("Hello, I am %s!" % cls)

Cette méthode ne nécessite pas d'instance car elle n'interagit pas avec des attributs d'objet spécifiques. Au lieu de cela, elle 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 :

class SubCls(Cls):
    pass

SubCls.introduce()
# outputs: Hello, I am 

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

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