Heim >Backend-Entwicklung >Python-Tutorial >Was genau macht __init__ in Python?

Was genau macht __init__ in Python?

大家讲道理
大家讲道理Original
2016-11-07 16:33:101322Durchsuche

Ich habe in Python eine Funktion mit einem seltsamen Namen gesehen, __init__. Ich weiß, dass die unterstrichene Funktion automatisch ausgeführt wird, aber ich kenne die genaue Bedeutung ihrer Existenz nicht.

Heute habe ich die gesehen > Kapitel Kapitel 11 Objektorientierte Programmierung führt es wie folgt ein: „Hinweise für C/Java/C#-Programmierer

Alle Klassenmitglieder (einschließlich Datenmitglieder) in Python sind öffentlich und alle Methoden sind gültig.

Mit einer Ausnahme: Wenn Sie einen Datenelementnamen verwenden, dem ein doppelter Unterstrich vorangestellt ist, wie z. B. __privatevar, behandelt das Namensverwaltungssystem von Python ihn effektiv als private Variable Nur innerhalb einer Klasse oder eines Objekts verwendet werden, sollte ihm ein einzelner Unterstrich vorangestellt werden, während alle anderen Namen öffentlich sind und von anderen Klassen/Objekten verwendet werden können. Denken Sie daran, dass dies nur eine Konvention ist und von Python nicht benötigt wird (im Gegensatz zu

Beachten Sie außerdem, dass die Methode __del__ dem Konzept des Destruktors ähnelt. „

Plötzlich wurde mir klar, dass __init__ in der Klasse verwendet wird auf eine feste Art und Weise. Es scheint sehr starr, aber es macht tatsächlich Sinn

def __init__(self, name):
    '''Initializes the person's data.'''
    self.name = name
    print '(Initializing %s)' % self.name
    # When this person is created, he/she
    # adds to the population
    Person.population += 1

Die Namensvariable gehört zum Objekt (sie verwendet Selbstzuweisung), Es handelt sich also um ein Objekt. Der Wert der Variablen

self.name wird pro Objekt angegeben und gibt damit an, dass es sich um eine Variable eines Objekts handelt.

Stellungnahme:
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