Dix méthodes magiques, les propriétés et les itérateurs

Méthodes magiques: Le début et la fin sont deux underscore

Caractéristique (propriété)

Itérateur (itérateur)

1, le constructeur

    Constructor, à savoir la méthode d'initialisation, vient d'être nommée __init__.

    Contrairement à la méthode constructeur locale ordinaire est appelée automatiquement après les objets sont créés.

    En Python, créez un constructeur est très facile, juste le nom du changement méthode init init de la version ordinaire de la magie peut __init__.

    Remarque: Dans l'ensemble de la méthode magique Python, __ init__ est généralement le plus utilisé.

    Extensions: Python fournit une méthode de __del__ magique, aussi appelé destructor (destructor), le procédé objet est détruit (déchets collectés) est appelée avant.

    

  1.1 remplacer la méthode classique et le constructeur spécial

    

    

 

 

 

    Lors de la substitution du constructeur, vous devez appeler le constructeur de superclasse (classe héritée), ou peut-être pas objet correctement initialisé.

    Il y a deux façons d'appeler le constructeur de superclasse: appeler le constructeur de superclasse non associé, et l'utilisation des fonctions super.

  Appelez le constructeur de la superclasse 1.2 unassociated

    

 

 

    Appelé par exemple, un procédé de paramètres indépendants liés automatiquement (méthode associée est appelée) Exemple

    Classe en appelant la méthode (par exemple Brid .__ init__), aucun cas associés à celui-ci, un procédé appelé non associé.

    Cet argument est auto pas liée aux méthodes d'instance en cours, à savoir (par exemple Brid .__ init __ (self)), pour obtenir le constructeur de la superclasse pour initialiser l'objet (par exemple, SongBrid) 

  1.3 Utilisation super

    

 

 

2, l'accès à l'élément

  2.1 les protocoles de séquence et de cartographie de base

    Et la cartographie de la séquence élément sensiblement fixé (point), pour atteindre leur comportement de base (protocole), deux objets immuables doivent mettre en oeuvre un procédé, la nécessité d'appliquer quatre objets mutables.

    __len __ (self): Cette méthode retourne le nombre d'éléments compris dans la collection de séquences, est le nombre d'éléments, pour cartographier une liaison - valeurs logarithmiques. Si __len__ renvoie zéro, l'objet est considéré comme faux dans un contexte booléen.

    __getitem __ (self, key): Cette méthode retourne la valeur associée à la clé spécifiée. Séquence, la clé doit être un nombre entier de 0 à n-1 (qui peut être négatif), où n est la longueur de la séquence, la mise en correspondance, la clé peut être un type quelconque.

    __setitem __ (self, clé, valeur ): Cette méthode doit être associée avec les valeurs associées aux clés stockées pour être utilisées ultérieurement pour obtenir __getitem__. Lorsque les objets de la variable seulement besoin de mettre en œuvre cette méthode.

    __delitem __ (self, key): Cette méthode est appelée lors de l' utilisation __del__ déclaration de la composition de l'objet, la valeur associée à la clé doit être supprimée. Lorsqu'une variable d'objet, et permettre à son entrée est supprimée), il suffit de mettre en œuvre cette méthode.  

    

  2.2 de la liste, dict et str dérivé

    

 

 

     

    CounterList classe de comportement dans la plupart des points de la liste similaire, mais les nouveaux attributs de compteur de, quand dans la liste d'accès, la valeur de la propriété augmenteront d'un.

    Dans les bibliothèques standards, le module de collections fournit une classe de base pour abstraite et concrète, mais peut hériter du type intégré (liste, dict et str)       

 

3, les caractéristiques

    Défini par la méthode d'accès souvent désigné en tant que propriétés caractéristiques (proprety).

  Propriété 3.1 Fonction

      

 

 

       (Première méthode d'acquisition, après avoir procédé) crée une caractéristique, le nom associé aux caractéristiques de taille et de la propriété d'accès en appelant la fonction en tant que paramètre.

      fonction de la propriété est appelée, le paramètre spécifié peut spécifier un paramètre qui spécifie trois paramètres ou quatre paramètres spécifie.

      Si vous ne spécifiez pas de paramètres, caractéristiques créeraient ce n'est pas lisible, ni écrire.

      Si un seul paramètre (méthode d'acquisition), les propriétés seront créées en lecture seule.

      Le troisième paramètre est facultatif, spécifie la méthode utilisée pour supprimer un attribut (cette méthode n'accepte pas de paramètres).

      Le quatrième paramètre est facultatif, spécifiez une chaîne de document.

      Les paramètres sont nommés fget, fset, fdel et doc.

      Description : Pour la nouvelle classe, les caractéristiques devrait être utilisé au lieu de la méthode d'accès.

    

  3.2 méthodes statiques et les méthodes de classe

      Les méthodes statiques et les méthodes de classe créent: ils ont été emballés dans des objets classe staticmethod et classmethod.

      Définir une méthode statique ne prend pas auto paramètres, peut être invoquée directement par la classe.

      La méthode comprend la définition des classes de paramètres sont semblables à soi-même, habituellement appelé cls, pour une méthode de classe, l'objet peut être appelé directement, mais les paramètres sont automatiquement associés à la classe cls.

      

      Il peut être utilisé pour emballer un objet décoratif peut être appelé, et peut être utilisé dans les méthodes et les fonctions.

      Également spécifier un ou plusieurs décoratif, qui peut être (au lieu d'une pluralité de décorateur ordre spécifié comme indiqué dans la demande) dans le procédé à cet effet (ou fonction) figurant dans la liste ci-dessus opérateur @ en utilisant ces décorative.

      

     

  3.3 __getattr __, __ setattr__ etc.        

    Vous pouvez bloquer tous les accès aux propriétés de l'objet tentatives, l'un de ses objectifs est d'obtenir des caractéristiques de l'ancienne classe.

    Pour exécuter un morceau de code lorsqu'une propriété est accessible, vous devez utiliser une méthode magique.

    __getattribute __ (self, nom): lorsque la propriété est accessible automatiquement appel (uniquement pour la nouvelle classe)

    __getattr __ (self, nom): appelé automatiquement lorsque la propriété est accessible et l'objet est pas une telle propriété

    __setattr __ (self, nom, valeur): invoquée automatiquement lorsque vous essayez de donner l'affectation de biens

    __delattr __ (self, nom): appelé automatiquement lorsque vous essayez de la propriété de suppression

4, itérateurs

  4.1 Protocole de l'itérateur

      objet __iter__ met en œuvre la méthode est itérative, une méthode est réalisée __next__ itérateurs objet.

      

 

 

      En appelant la fonction iter de iterables intégré obtenu un itérateur.

      

 

 

 

  4.2 Création d'une séquence de l'itérateur

      

5, Générateur

  Il est généré en utilisant une syntaxe commune pour définir une fonction de l'itérateur.

  fonction de rendement contient des déclarations ont été connus en tant que générateur.

  Générateur n'a pas été utilisé pour renvoyer une valeur de retour, mais peut générer une pluralité de valeurs.

  

 

 

  5.1 récursive Générateur

    

    Lors de l' appel aplatir, il y a deux possibilités: les conditions de base et les conditions de récursion .

  Constructeur général 5.2

    Générateur se compose de deux parties distinctes: une fonction de générateur et le générateur itérateur.

    Générateur de fonction est définie par une instruction de définition, qui comprend le rendement.

    Iterator générateur est le résultat retourné par cette fonction.

    

 

 

  5.3 Méthode Builder

    envoyer: le monde extérieur peut accéder au générateur par cette méthode.

    jeter: exception est levée avec le constructeur (à l'expression de rendement) peut fournir une exception lorsque le type d'appel, une valeur facultative et un objet de retraçage.

    Fermer: pour arrêter le générateur, sans fournir d'arguments lorsque vous appelez.

 

Je suppose que tu aimes

Origine www.cnblogs.com/nuochengze/p/12445944.html
conseillé
Classement