608 Stimmen

Warum haben einige Funktionen Unterstriche "__" vor und nach dem Funktionsnamen?

Diese "Unterstreichung" scheint häufig aufzutreten, und ich habe mich gefragt, ob dies eine Anforderung in der Sprache Python oder lediglich eine Frage der Konvention war?

Kann mir jemand erklären, bei welchen Funktionen die Unterstriche verwendet werden und warum ( __init__ zum Beispiel)?

11 Stimmen

@AustinHenley: Nicht für doppelte Unterstreichungen vor und nach den Namen. Sie denken dabei nur an Unterstriche vor den Namen.

4 Stimmen

5voto

Shagun Pruthi Punkte 1613

Diese Konvention wird für spezielle Variablen oder Methoden (sogenannte "magische Methoden") verwendet, wie z.B. __init__ y __len__ . Diese Methoden bieten besondere syntaktische Merkmale oder führen besondere Aufgaben aus.

Zum Beispiel, __file__ gibt den Speicherort der Python-Datei an, __eq__ wird ausgeführt, wenn a == b Ausdruck ausgeführt wird.

Ein Benutzer kann natürlich eine benutzerdefinierte spezielle Methode erstellen, was ein sehr seltener Fall ist, aber oft kann er einige der eingebauten speziellen Methoden ändern (z.B. sollten Sie die Klasse mit __init__ die als erstes ausgeführt wird, wenn eine Instanz einer Klasse erstellt wird).

class A:
    def __init__(self, a):  # use special method '__init__' for initializing
        self.a = a
    def __custom__(self):  # custom special method. you might almost do not use it
        pass

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X