Versuchen Sie, Python selbst zu verstehen

Beachten

Ich selbst bin neu in Python und es gibt viele Dinge, die ich nicht verstehe. (Es tut mir leid, wenn dieser Artikel auch falsch ist)

Einführung

Beim Lernen in Python kommt etwas heraus, das Selbst genannt wird. Es scheint jedoch eine Magie zu sein, daher bin ich mir nicht sicher, also werde ich zusammenfassen, was ich untersucht habe.

Dieser ganze Code

main.py


class Cat():
    def __init__(self,name):
        self.name = name

    def naku(self):
        print("Miau")

tama = Cat("Tama")
tama.naku()

Cat.naku(tama)

Bevor Sie zum Hauptthema kommen

In Python

main.py


Empfänger.Methode(Streit…)

,

main.py


Empfängerklasse.Methode(Empfänger,Streit…)

Interpretieren als. Ich weiß nicht warum. (wirklich leid) Es funktioniert jedoch genauso, unabhängig davon, welches Sie schreiben, und wenn Sie sich selbst verstehen, ist es einfacher, das erstere als das letztere zu verstehen, daher werde ich es auf diese Weise erklären.

Hauptthema

Lassen Sie uns zunächst den gesamten Code durchgehen. Erstens gibt es die Cat-Klasse.

main.py


class Cat():
    def __init__(self,name):
        self.name = name

    def naku(self):
        print("Miau")

Die Instanzvariable enthält einen Namen. Die Naku-Funktion klingt "Nya".

Klassen sind wie Konzepte, daher werden sie tatsächlich unter dem Namen "Tama" beschworen (instanziiert).

main.py


tama = Cat("Tama")

Ja, die Katze Tama wurde jetzt gerufen. Als nächstes lass mich klingeln.

main.py


#Empfänger.Methode(Streit…)
tama.naku() #=>Miau

Ja, es hat geschrien. Dies ist eine andere Art zu schreiben, nicht wahr?

main.py


#Empfängerklasse.Methode(Empfänger,Streit…)
Cat.naku(tama) #=>Miau

Ja, was Sie hier sehen möchten, ist, dass "tama" im Empfängerteil der Argumentklammern steht. Wenn Sie es also erneut mit der in der Klasse definierten Naku-Funktion vergleichen,

python


#neko Funktionsdefinition
def naku(self):

#Funktionsaufruf
Cat.naku(tama)

Die Argumente stimmten überein. Dies ist die wahre Identität des Selbst.

Mit anderen Worten, hier ist es "tama = self". Es wird oft erklärt, dass "self die Instanz selbst ist", aber einfach, weil die Funktion "Receiver class.method (Empfänger, Argument ...)" in der Python-Syntax als erste aufgerufen wird Es scheint nutzlos zu sein, da die Anzahl der Argumente nicht übereinstimmt, es sei denn, die Instanz selbst wird in ein Argument (Empfänger) eingefügt.

Gleiches gilt für die Init-Funktion. In Anbetracht der Funktionsweise der Init-Funktion, die beim Beschwören von Tama-chan aufgerufen wird,

python


#Empfängerklasse.Methode(Empfänger,Streit…)
Cat.__init__(tama,"Tama")

Sie können verstehen, dass der Code intern erfolgt.

Nein, warum wurde das "tama" des Cat () - Arguments zum Argument der init-Funktion! ?? Das ist eine Frage, die sicherlich auftaucht, aber wenn Sie sorgfältig darüber nachdenken, ist die Init-Funktion eine spezielle, die zum Zeitpunkt der Instanziierung immer aufgerufen wird, im Gegensatz zu der Funktion, die Sie selbst definieren, und wird daher als Argument von Cat () verwendet. Ich denke jedoch, dass es automatisch in das Argument der init-Funktion aufgenommen wird. (Bitte lassen Sie mich wissen, wenn jemand weiß.) Außerdem sind Klassen keine Funktionen, sodass keine Argumente erforderlich sind.

Was ich fand

--self ist nur ein Argument

Recommended Posts

Versuchen Sie, Python selbst zu verstehen
Versuchen Sie Python
Versuchen Sie, Facebook mit Python zu betreiben
Versuchen Sie, Trace in Python zu berechnen
Versuchen Sie, die cloudmonkey-CLI in python3 -1 zu konvertieren
Versuchen Sie, Farbfilme mit Python zu reproduzieren
Versuchen Sie, sich mit Python bei qiita anzumelden
Python> try: / außer:
Versuchen Sie, Excel mit Python (Xlwings) zu betreiben.
[Python] Pandas in 10 Minuten vollständig zu verstehen
Python Amateur versucht die Liste zusammenzufassen ①
[Python] Verstehen, wie rekursive Funktionen verwendet werden
Python selbst verstehen
Der Versuch, Segmentbäume Schritt für Schritt zu implementieren und zu verstehen (Python)
"Backport" zu Python 2
Erste Schritte zum Testen von Google CloudVision in Python
Versuchen Sie, Oni Mai Tsuji Miserable mit Python zu implementieren
Versuchen Sie automatisch, Enum in Python 3.6 automatisch zu bewerten
Versuchen Sie, das Problem der Python-Klassenvererbung zu lösen
Lassen Sie uns verstehen, wie Argumente übergeben werden (Python Edition)
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Versuchen Sie, Python-Dokumente automatisch mit Sphinx zu generieren
Versuchen Sie, RPN mit Python zu berechnen (für Anfänger)
Python-Mock, um AWS IoT Device Shadow auszuprobieren
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Wissensnotizen erforderlich, um das Python-Framework zu verstehen
Versuchen Sie, Fische mit Python + OpenCV2.4 (unvollendet) zu erkennen.
Grundlegendes zur Python for Pepper-Entwicklung. -Einführung in Python Box-
Versuchen Sie es mit Python.
So installieren Sie Python
Python versuchen ~ außer ~ sonst
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Schreiben Sie Python2-Code in Python3 um (2to3)
So installieren Sie Python
Einführung in die Python-Sprache
Einführung in OpenCV (Python) - (2)
Versuchen Sie Debian + Python 3.4 + django1.7 ……
Versuchen Sie, yolact zu implementieren
Versuchen Sie gRPC in Python
Beachten Sie, dass Python ein Daemon ist
Einführung von Python 2.7 in CentOS 6.6
Verbinden Sie Python mit MySQL
Probieren Sie 9 Slices in Python aus
Versuchen Sie es mit Tweepy [Python2.7]
Python versuchen / außer Memo
Selbst Anfänger möchten sagen "Ich verstehe Python voll und ganz"
Versuchen Sie, das Programmier-Herausforderungsbuch mit Python3 zu lösen
Python-Anfänger versucht, dem Administrator von Django eine grundlegende Authentifizierung hinzuzufügen
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
[Python] Versuchen Sie, die coole Antwort auf das FizzBuzz-Problem zu lesen
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Versuchen Sie, Ihr eigenes Intro-Quiz mit Python zu verbessern
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen