[Python] Was wird zuerst ausgeführt, Klassenvariable oder __init__?

Ich dachte, ich schreibe Python. "Welche der Klassenvariablen und \ _ \ _ init \ _ \ _ wird zuerst ausgeführt ???" Ich grabe nicht tief. Es ist eine kleine Geschichte. Es ist eine Verschwendung, bis zum Ende zu lesen, also schreibe ich zuerst das Ergebnis.

Ergebnis

Klassenvariablen werden zuerst verarbeitet, gefolgt von \ _ \ _ init \ _ \ _.

Überprüfung

Schreiben Sie print () in die Klassenvariable bzw. \ _ \ _ init \ _ \ _. Überprüfen Sie anhand des Ausführungsergebnisses, welches zuerst angezeigt wird.

test.py


class main:

    s = 'Klassenvariablen wurden definiert.'
    print(s)

    def __init__(self):
        s = '__init__Wurde ausgeführt.'
        print(s)

if __name__ == '__main__':
    main()

Ergebnis


$ python test.py
Klassenvariablen wurden definiert.
__init__Wurde ausgeführt.

Die Klassenvariable wird zuerst ausgeführt, und dann wird \ _ \ _ init \ _ \ _ ausgeführt. Definieren wir nun eine Klassenvariable unter \ _ \ _ init \ _ \ _. Der Code wird schmutzig, aber es ist eine Überprüfung ...

test.py


class main:

    def __init__(self):
        s = '__init__Wurde ausgeführt.'
        print(s)

    s = 'Klassenvariablen wurden definiert.'
    print(s)


if __name__ == '__main__':
    main()

Ergebnis


$ python test.py
Klassenvariablen wurden definiert.
__init__Wurde ausgeführt.

Das Ergebnis hat sich nicht geändert. Es stellt sich heraus, dass alles, was Sie oben schreiben, immer von der Klassenvariablen ausgeführt wird. Das ist alles.

Nachtrag

In den Kommentaren

Versuchen Sie es auszuführen, ohne main () aufzurufen. Es wird ein interessantes Ergebnis.

Als ich es versuchte, wurde nur der Klassenvariablenteil ausgeführt. In den Kommentaren finden Sie eine leicht verständliche Erklärung. Sie können sehen, dass Sie auf die Verarbeitung in der Klasse und der Methode verweisen können, ohne die Klasse auszuführen. Ich kann für den Rest meines Lebens nicht aus einem Anfänger herauskommen. Aber es macht Spaß.

Recommended Posts

[Python] Was wird zuerst ausgeführt, Klassenvariable oder __init__?
Warum ist das erste Argument der [Python] -Klasse selbst?
Was ist besser, PyPy oder Python?
Was ist schneller, Python Shuffle oder Sample?
Was ist besser, wenn Pythons Standardeingabe input () oder sys.stdin empfängt?
Welches ist schließlich das beliebteste Python-Visualisierungstool?
__init__, das von wxPython oder Tkinter aufgerufen wurde, war ein __init__ -Aufruf der geerbten Klasse in Python
[Python] Ist das null, aber nicht leere Objekt wahr oder falsch?
[Anfänger sind besorgt] Was ist besser, Ruby, PHP oder Python?
Erster Python 3 ~ Der Beginn der Wiederholung ~
[Python] Was ist @? (Über Dekorateure)
[Python] Was ist der sortierte Schlüssel?
Siehe Python zum ersten Mal
Untersuchen Sie die Klasse eines Objekts mit Python
Wofür ist der Python-Unterstrich (_)?
Bestimmen des Betriebssystems, auf dem Python ausgeführt wird
Der erste Schritt von Python Matplotlib
Wenn Python kleiner als 3.3 ist, verwenden Sie die Option -R oder die Umgebungsvariable PYTHONHASHSEED = "random" für DoS-Gegenmaßnahmen.
Python gibt keine Fehler oder Ausgaben aus, nur weil der Einzug falsch ausgerichtet ist
[Python] Bestimmen Sie, ob sich ein Koordinatenpunkt innerhalb oder außerhalb des Polygons befindet
Generieren Sie eine erstklassige Sammlung in Python
Spielen Sie kontinuierlich die MV der ersten Python Skusta
Nehmen Sie die logische Summe von List in Python (Zip-Funktion)
Wo ist der Python-Instanziierungsprozess geschrieben?
Was ist "Mahjong" in der Python-Bibliothek? ??
MongoDB mit Python zum ersten Mal
[Python] [Meta] Ist der Python-Typ ein Typ?
[Python] Anzahl der Ganzzahlzeichenfolgen der Länge n, für die die Summe m ist