logo

Unterstrich (_) in Python

In diesem Artikel werden wir den Unterstrich (_) in Python sehen.

Im Folgenden sind verschiedene Orte aufgeführt, an denen _ wird in Python verwendet:

  • Einzelner Unterstrich:
    • Einzelner Unterstrich im Interpreter
    • Einzelner Unterstrich nach einem Namen
    • Einzelner Unterstrich vor einem Namen
    • Einzelner Unterstrich in numerischen Literalen
  • Doppelter Unterstrich:
    • Doppelter Unterstrich vor einem Namen
    • Doppelter Unterstrich vor und nach einem Namen

Einzelner Unterstrich

Beispiel 1: Einzelner Unterstrich im Interpreter:

_ gibt den Wert des zuletzt ausgeführten Ausdruckswerts in Python Prompt/Interpreter zurück



Beispiel 2: Einzelner Unterstrich zum Ignorieren von Werten

Mehrmals möchten wir zu diesem Zeitpunkt keine Rückgabewerte haben, um diese Werte Underscore zuzuweisen. Es wird als Wegwerfvariable verwendet.

Python3




# Ignore a value of specific location/index> for> _>in> range>(>10>)> >print> (>'Test'>)> # Ignore a value when unpacking> a,b,_,_>=> my_method(var1)>

>

>

Beispiel 3: Einzelner Unterstrich nach einem Namen

Python verfügt standardmäßig über Schlüsselwörter, die wir nicht als Variablennamen verwenden können. Um einen solchen Konflikt zwischen dem Python-Schlüsselwort und der Variablen zu vermeiden, verwenden wir nach dem Namen einen Unterstrich

Java-Arraylist sortiert

Python3




class> MyClass():> >def> __init__(>self>):> >print>(>'OWK'>)> def> my_definition(var1>=>1>,>class_>=>MyClass):> >print>(var1)> >print>(>class_>)> my_definition()>

>

>

Ausgabe:

1>

Beispiel 4: Einzelner Unterstrich vor einem Namen

Führender Unterstrich davor Variable / Funktion / Der Methodenname zeigt dem Programmierer an, dass er nur für den internen Gebrauch bestimmt ist und jederzeit geändert werden kann, wenn die Klasse dies wünscht. Hier wird ein Namenspräfix mit Unterstrich als nicht öffentlich behandelt. Wenn angegeben aus Import * Alle Namen, die mit _ beginnen, werden nicht importiert. Python gibt nicht wirklich privat an, daher kann dieses Modul direkt von anderen Modulen aufgerufen werden, wenn es in __all__ angegeben ist. Wir nennen es auch schwach Privat

Python3




class> Prefix:> >def> __init__(>self>):> >self>.public>=> 10> >self>._private>=> 12> test>=> Prefix()> print>(test.public)> print>(test._private)>

>

>

10 12>

Beispiel 5: Einzelner Unterstrich in numerischen Literalen

Die Python-Syntax wird so genutzt, dass Unterstriche als visuelle Trennzeichen für die Gruppierung von Ziffern verwendet werden können, um die Lesbarkeit zu verbessern. Dies ist ein typisches Merkmal der meisten aktuellen Sprachen und kann die Lesbarkeit langer Literale oder Literale, deren Wert klar in Abschnitte unterteilt sein sollte, verbessern.

Python3




# grouping decimal for easy readability of long literals> amount>=> 10_000_000>.>0> # grouping hexadecimal for easy readability of long literals> addr>=> 0xCAFE_F00D> # grouping bits for easy readability of long literals> flags>=> 0b_0011_1111_0100_1110>

>

>

Doppelter Unterstrich vor einem Namen

Der führende doppelte Unterstrich weist den Python-Interpreter an, den Namen neu zu schreiben, um Konflikte in einer Unterklasse zu vermeiden. Der Interpreter ändert den Variablennamen mit der Klassenerweiterung und der als Mangling bekannten Funktion.

Python3




class> Myclass():> >def> __init__(>self>):> >self>.__variable>=> 10>

>

>

Anruf vom Dolmetscher

testFile.py

Der Python-Interpreter ändert den Variablennamen mit ___. Daher wird es mehrmals als privates Mitglied verwendet, da eine andere Klasse nicht direkt auf diese Variable zugreifen kann. Der Hauptzweck von __ ist die Verwendung Variable /Methode nur in der Klasse Wenn Sie sie außerhalb der Klasse verwenden möchten, können Sie sie öffentlich machen.

Python3




class> Myclass():> >def> __init__(>self>):> >self>.__variable>=> 10> >def> func(>self>)> >print>(>self>.__variable)>

>

>

Anruf vom Dolmetscher

Doppelter Unterstrich vor und nach einem Namen

Der Name beginnt mit __ und endet mit dem gleichen Zeichen, da spezielle Methoden in Python berücksichtigt werden. Python stellt diese Methoden zur Verfügung, die je nach Benutzer als Überladungsoperator verwendet werden können. Python stellt diese Konvention bereit, um zwischen der benutzerdefinierten Funktion und der Modulfunktion zu unterscheiden

Python3




class> Myclass():> >def> __add__(>self>,a,b):> >print> (a>*>b)>

>

>

Anruf vom Dolmetscher