méthodes de classe

1. Méthodes spécifiques à la classe

Lorsqu'une classe est créée, elle contiendra certaines méthodes, principalement les méthodes suivantes :

Méthodes spécifiques à la classe :

Méthodes Description
__init__ Constructeur, appelé lors de la génération d'un objet
__del__ Destructeur, utilisé lors de la libération d'un objet
__repr__ Imprimer, convertir
__setite m__ Attribuer une valeur en fonction de l'index
__getitem__ Obtenir la valeur en fonction de l'index
__len__ Obtenir la longueur
__cmp__ Opération de comparaison
__call__ Appel de fonction
__add__ Opération d'addition
__sub__ Opération de soustraction
__mul__ Opération de multiplication
__div__ Opération de division
__mod__ Reste opération
__pow__ Powered

Bien sûr, nous avons parfois besoin d'obtenir des informations pertinentes sur une classe. Nous pouvons utiliser les méthodes suivantes :

type(obj) : pour obtenir le type correspondant de l'objet ;

isinstance(obj, type) : pour déterminer si l'objet est sélectionné. l'objet est du type spécifié.Exemple ;

hasattr(obj, attr): Détermine si l'objet a l'attribut/la méthode spécifié ;

getattr(obj, attr[, default]) Obtenez la valeur de l'attribut/de la méthode, s'il n'y a pas d'attribut correspondant, renvoie la valeur par défaut (le principe est que la valeur par défaut est définie), sinon une exception AttributeError sera levée

setattr(obj, attr, value) : définit la valeur de l'attribut/de la méthode, similaire ; to obj.attr=value;

dir(obj): Oui Obtenez une liste de tous les attributs et noms de méthodes de l'objet correspondant :

2 Contrôle d'accès aux méthodes

En fait, nous pouvons également considérer les méthodes comme des attributs. de la classe, donc le contrôle d'accès des méthodes est le même que celui des attributs. Il n'y a pas de méthodes essentiellement privées. Tout repose sur le fait que les programmeurs respectent consciemment les normes de programmation Python.

L'exemple est le suivant, les règles spécifiques sont les mêmes que celles des propriétés,

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class User(object):
    def upgrade(self):
        pass
    def _buy_equipment(self):
        pass
    def __pk(self):
        pass

3 La méthode decorator

@classmethod est appelée directement en utilisant le nom de la classe au lieu d'un objet

@property est accessible comme The. la méthode d'appel est la même que l'attribut

Voir l'exemple d'utilisation spécifique :

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class UserInfo(object):
    lv = 5
    def __init__(self, name, age, account):
        self.name = name
        self._age = age
        self.__account = account
    def get_account(self):
        return self.__account
    @classmethod
    def get_name(cls):
        return cls.lv
    @property
    def get_age(self):
        return self._age
if __name__ == '__main__':
    userInfo = UserInfo('两点水', 23, 347073565);
    # 打印所有属性
    print(dir(userInfo))
    # 打印构造函数中的属性
    print(userInfo.__dict__)
    # 直接使用类名类调用,而不是某个对象
    print(UserInfo.lv)
    # 像访问属性一样调用方法(注意看get_age是没有括号的)
    print(userInfo.get_age)

Le résultat de l'opération :

e53dc1900a55b2ba13dc94b9e9d2d4c.png

Formation continue
  • Recommandations de cours
  • Téléchargement du didacticiel