Les classes sont Python Usage avancé , si vous n'avez jamais vu ce terme ou n'avez jamais entendu parler de ce concept, c'est très normal, car d'une part il la fréquence n'est pas élevée ] Et l'autre aspect est que cela est relativement n'est pas facile à comprendre . Par conséquent, de nombreux développeurs de Python comprennent qu'ils ne sont pas très profonds, ce qui rend beaucoup d'informations sur le marché. J'ai aussi lu une partie du code de la Grande vache pour ouvrir la porte de ce nouveau monde.
Tout d'abord, tout est un objetnous recommandons généralement, à Python Tout est un objet note, tout est un objet. Nous savons tous que l'objet est le résultat de la création de classes et de classes et de classes d'objet pouvant être simplifiées par rapport à la relation entre les moules et les produits finis. Le moule est une classe et le produit est fabriqué selon le moule comme objet. Cette métaphore est relativement proche, mais elle est imparfaite. Parce qu'un moule peut être fait en moule réel,Un seul moule. Cependant, le langage de programmation est différent, mais parce que la classe peut être héritée et multiple héritage
, on peut dire qu'un objet peut correspondre à de nombreuses couches. Par conséquent, cette métaphore n'est pas particulièrement appropriée, mais la relation entre les classes et les objets est vraie.
Mais cela a un problème. Parce que tout dans Python est un objet, est-il vrai que la classe est vraiment un objet? C'est-à-dire qu'un moule est vraiment un autre produit de moisissure? De même, ce modèle est vraiment un autre produit de moisissure, alors quelles questions demanderons-nous? Très simple, nous savons que nous pouvons utiliser des mots-clés _Class____ pour voir le type de variable, puis nous pouvons voir plusieurs fois:
Du haut dans l'image, nous pouvons trouver le numéro de type Int. Nous continuons à voir ce type de type INT,
avec type
. Lorsque nous allons voir Type Type, nous verrons que nous obtenons le type de type. Par conséquent, nous pouvons comprendre que ce type est la classeAntiles sont utilisés pour créer toutes les classes de Python, qui est le moule de tous les moules. En Python, nous appelons une couche de couche (métaclass). Par conséquent, le type est le type intégré à Python et nous pouvons également créer la classe dont nous avons besoin. À travers la classe, l'objet que nous avons créé est également une classe, pas un exemple.La seconde classe dynamique dynamique Comprendre le type est le fondement de toutes les classes, il est simple de voir la classe dynamique.
La classe dynamique est la langue la plus dynamique de la fonctionsous forme de langage dynamique typique, Python est naturellement créé par le type de support. En Python, un moyen de créer un type dynamique est via le type de type. Quelques surprises, les fonctions qui ne sont pas utilisées pour interroger le type d'objet appartiennent à, comment créer une classe?
Il s'agit vraiment de autres utilisations , en tant que catégorie pour créer une classe. Dans cette section d'utilisation, le type de type reçoit 3 paramètres, nommément le nom du type, la classe mère et le dictionnaire. SortirAm numéro d'abord, les deux paramètres peuvent être vides. Par exemple, prenez l'exemple:
Notez que les résultats sont renvoyés par type sous forme de classe, pas une instance. Par conséquent, nous pouvons également créer des exemples:
C'est la classe vide la plus simple, elle n'a rien et le code équivalent.Nous pouvons également remplir les propriétés et les méthodes de cette classe dans les paramètres suivants:
hello = Hello()
Devons-nous en créer un pour saluer. La méthode est appelée bonjour, et certains attributs dans 3. Nous pouvons l'appeler essayer:
class Hello: pass
Bien que nous puissions utiliser le type pour déterminer la classe en fonction des besoins des besoins de nous, mais du type Ne peut supprimer que le type d'objet, vous pouvez créer de nouvelles classes
, il peut se sentir moins intuitifdef hello_world(self): print('hello') Hello = type('Hello', (), {'hello':hello_world, 'num': 3})
, mais en fait, c'est aussi un moyen. Nous avons créé un objet de chaîne en appelant STR, créant un objet entier via INT pour créer, puis créer un objet de classe avec type. Troisième, nHéritage
Nous avons dit plus tôt lorsque nous utilisons le type pour créer une classe, vous pouvez également transmettre le tuple de la classe mère pour obtenir l'héritage de la classe. Par exemple, nous créons un héritage de classe de la classe Hello hérit du type, puis ajoutez des fonctions supplémentaires:
Notez que le sexe Le deuxième paramètre est
Parents de groupe de classe
, Comme il s'agit d'un tuple, alors lorsque l'élément n'est qu'un, il faut ajouter une virgule, indiquant qu'il s'agit d'un tuple. Cette création est comme celles identifiées par la classe:def say_world(self): print('World') World = type('World', (Hello, ), {'world': say_world})
, nous pouvons d'abord effectuer des fonctions, puis mettre ces groupes fonctionnels dans le nouveau type. De toute évidence, cela est comparable aux langues traditionnelles et plus flexibles C ++ et Java.
Nous pouvons également créer des classes dynamiques par type, mais à partir du processus d'utilisation ci-dessus, il convient également de voir que ce n'est pas pratique et
De nombreuses fonctionnalités améliorées sont formidables.OHA a atteint
. Afin de connaître un exemple simple, par exemple, nous souhaitons ajouter des méthodes dynamiques à une couche existante pour créer de nouvelles classes. Très difficile pour nous d'utiliser ce type. Est, l'application principale de Python Meta , La métaclasse est roi, mais cette section sera placée dans le prochain article en raison de la limite d'espace.Bien entendu, la couche de classe est une méthode d'utilisation très avancée, de sorte que le fondateur de Python a déclaré
Python Programmers 99% n'a pas besoin de l'utiliser
. Donc, si vous vous sentez très déroutant, vous n'avez pas de relation, vous n'avez pas de relation, Vous savez que vous pouvez.