Lassen Sie uns über Self in Python sprechen. Wer ist das?

王林
Freigeben: 2023-05-15 08:01:05
nach vorne
961 Leute haben es durchsucht

Lassen Sie uns über Self in Python sprechen. Wer ist das?

Wenn jeder Python objektorientiert lernt, wird er immer auf eine Existenz stoßen, die schwer zu verstehen ist: sich selbst.

Wer ist dieses Selbst? Warum hat jede Klasseninstanzmethode einen Parameter?

„Lassen Sie uns zunächst die Schlussfolgerung ziehen: Nachdem die Klasse instanziiert wurde, repräsentiert das Selbst die Instanz (das Objekt) selbst.“

Der einfachste Weg, sich selbst zu verstehen, besteht darin, sich selbst als „die ID-Karte der Instanz (des Objekts)“ vorzustellen.

Python-Klassen können nicht direkt verwendet werden, indem Instanzen (Objekte) erstellt werden. Jede Instanz ( Objekt) ist eindeutig und kann Methoden und Eigenschaften der Klasse aufrufen. Klassen sind wie Seelenbesessenheit und ermöglichen es Instanzen (Objekten), ihre eigenen (Selbst-)Funktionen zu haben.

Lassen Sie uns über Self in Python sprechen. Wer ist das?

Anfänger werden feststellen, dass es in der Klassenmethode (Konstruktormethode und Instanzmethode) einen festen Parameter selbst gibt, genau wie eine ID-Karte Verwenden Sie die ID-Karte, um die Klassenmethode aufzurufen.

Lassen Sie uns über Self in Python sprechen. Wer ist das?

Analog zum Menschen sind Menschen eine Python-Klasse, jede einzelne Person repräsentiert eine Instanz (ein Objekt) und der Personalausweis jeder Person repräsentiert sich selbst in Python. Jeder kann seinen Personalausweis verwenden, um aufs College zu gehen oder die High-Tech-Klasse zu besuchen. Speed ​​Rail, Übernachten in einem Hotel... (Methode) und Instanzen (Objekte) in Python können auch Klassenmethoden mit self aufrufen.

Lassen Sie uns über Self in Python sprechen. Wer ist das?

Das Obige verwendet eine Analogie, um die Bedeutung von self zu erklären. Letztlich stellt self die Instanz selbst dar: „Wenn eine Instanz (ein Objekt) eine Klassenmethode aufruft, verwendet das Objekt als erstes seine eigene Referenz.“ Parameter werden automatisch an die Methode übergeben, und der erste Parameter ist self. Und self ist nur eine herkömmliche Schreibweise. Sie können jeden anderen Namen verwenden, um self zu ersetzen, was die Bedeutung des Codes nicht ändert, aber wir Tun Sie dies im Allgemeinen nicht.

Um die Rolle des Selbst besser zu veranschaulichen, nehmen wir unten ein Beispiel:

class Students:
# 构造方法
def __init__(self,name):
self.name = name
# 实例方法
def study(self,examination_results):
self.examination_results = examination_results
print("同学{}的考试分数是{}".format(self.name,self.examination_results))
print("该实例对象的地址是{}".format(self))
Nach dem Login kopieren

Nehmen wir zunächst ein Beispiel von student_a.

studend_a = Students('studend_a')
print(studend_a.name)
Nach dem Login kopieren

Das Ergebnis wird ausgegeben: student_a.

Nehmen wir ein weiteres Beispiel, student_b.

studend_b = Students('studend_b')
print(studend_b.name)
Nach dem Login kopieren

Das Ergebnis wird ausgegeben: student_b.

Es ist ersichtlich, dass die Instanzen (Objekte) unterschiedlich sind und auch die gedruckten Ergebnisse unterschiedlich sind. Wenn die Klasse instanziiert wird, ist self.name tatsächlich gleich der Instanz (object).name.

Nehmen wir den Code gerade als Beispiel. Rufen wir die darin enthaltene Instanzmethode auf, und self wird ausgedruckt, was es offensichtlicher macht.

Instanz student_a:

studend_a = Students('studend_a')
print(studend_a.study(80))
Nach dem Login kopieren

Ausgabeergebnis:

Die Prüfungspunktzahl von Student student_a beträgt 80. Die Adresse des Instanzobjekts lautet

.

<「main」.Students object at 0x00000129EB0F6A90>Instanz student_b:

studend_b = Students('studend_b')
print(studend_b.study(80))
Nach dem Login kopieren

Ausgabeergebnis:

Die Prüfungspunktzahl von Student student_b beträgt 80. Die Adresse dieses Instanzobjekts lautet

.

<「main」.Students object at 0x00000129EB0F6B38>Sie können deutlich erkennen, dass das von den beiden Instanzen gedruckte Selbst unterschiedlich ist, da self die Instanz (das Objekt) selbst darstellt.

Am Beispiel der Instanz student_b werden beim Drucken von self die folgenden Objektinformationen angezeigt.

.

<__main__.Students object at 0x00000129EB0F6B38>Wenn Sie student_b erneut drucken, wird das gleiche Ergebnis angezeigt.

print(student_b)
Nach dem Login kopieren

Ausgabe:

.

<__main__.students object at>Ist zu diesem Zeitpunkt klar, dass self nach der Instanziierung der Klasse die Instanz (das Objekt) selbst darstellt.

Das obige ist der detaillierte Inhalt vonLassen Sie uns über Self in Python sprechen. Wer ist das?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage