Dieser Artikel sollte für diejenigen, die "def \ _ \ _ init \ _ \ _ (self):" schreiben, das in der Python-Klassendefinition so erscheint, als ob sie vorerst gespeichert wären, so intuitiv wie möglich sein. Ich habe geschrieben, um es zu tun.
Python verwendet beim Definieren einer Klasse das folgende Format.
class demo_class():
def __init__(self):
pass
Da dies nicht intuitiv ist (für Python), denke ich, dass es viele Anfänger außer mir gibt, die es schwer haben.
\ _ \ _ Init \ _ \ _ () ist ein spezieller Name für die Methode, die ein einzelnes Objekt initialisiert, wenn es aus der Klassendefinition erstellt wird.
Ich bin mir nicht sicher, ob Sie so viel sagen. In dieser Einführung zu Python 3 wurde jedoch weiterhin erklärt, was das Python-Verarbeitungssystem tut, und es war leicht zu verstehen. Daher werde ich es zusammenfassen und mit zusätzlichen Abbildungen erläutern.
Fügen Sie zur Vereinfachung der Erklärung den Namen der Mitgliedsvariablen der Klasse hinzu und fügen Sie das Element hinzu, um "hoge" hinzuzufügen.
class demo_class():
def __init__(self,name):
self.name = name
a = demo_class("hoge")
print("a: ",a)
print("a.name: ",a.name)
[Ausgabeergebnis]
a: <__main__.demo_class object at 0x1023b6668>
a.name: hoge
Python kann Klassen wie das Ausführen einer Funktion instanziieren. Eine Instanz ist eine Entität eines Objekts, und Instanziierung bedeutet ungefähr, ein Programm im Speicher ausführbar zu machen.
Woher kommt der Python-Interpreter in der folgenden Zeile?
a = demo_class("hoge")
Es wird in der oben angegebenen Reihenfolge verarbeitet. Es sieht aus wie in der Abbildung unten
Erstellen Sie zunächst ein leeres Klassenobjekt aus der Klassendefinition
Das generierte Klassenobjekt muss das vorherige Objekt ändern, um sich selbst zu initialisieren (fügen Sie dem Namenselement "hoge" hinzu). Derzeit weiß ich vom Python-Interpreter nicht, welche Art von Initialisierung für welches Objekt durchgeführt werden soll, und ich weiß nicht, wie ich auf die Variable verweisen soll.
Die Methode \ _ \ _ init \ _ \ _ ist eine spezielle Methode zur Initialisierung.
Das heißt, ** um zu verdeutlichen, welches Objekt der Python-Interpreter initialisieren soll und wie ** mit der speziellen Methode \ _ \ _ init \ _ \ _ Methode zur Initialisierung ** das leere Objekt, das Sie gerade erstellt haben Wird als Selbstargument übergeben **.
Auf diese Weise können Sie Ihre eigenen Objekte identifizieren und müssen keine zusätzlichen Namen für jede Klasse erstellen.
Das Problem hier ist "self.name".
def __init__(self,name):
self.name = name
Der "self.name" auf der linken Seite ** definiert eine Mitgliedsvariable **, also ** erstellen Sie eine Namensvariable im Objekt und weisen Sie den Namen zu, der das Argument "hoge" enthält ** Das ist. Mit anderen Worten, ** der Name in der ersten Zeile und der Name auf der rechten Seite der zweiten Zeile stehen für verschiedene Dinge **. Da dies das gleiche ist, denke ich, ist es auf den ersten Blick schwer zu verstehen.
Der Grund für die Annahme von "Selbst" ist, dass dadurch explizit angegeben wird, auf welches Objekt sich der Interpreter für die Verarbeitung beziehen soll. (vielleicht)
(In Python wird alles, was auf ein "." Folgt, als Attribut bezeichnet.)
In diesem Artikel gibt es viele Teile, die als "XX tun" oder "XX tun" behauptet und als Mittel für einen begrenzten Zweck erklärt werden, aber dies dient dazu, das Bild zu erfassen. Dies ist die Methode, mit der es zum ersten Ziel gemacht wird, und angesichts der langen Lernspanne gibt es einige Probleme.
Erste Schritte Python3 Offizielles Dokument
Recommended Posts