Heim >Backend-Entwicklung >Python-Tutorial >Was ist der Unterschied zwischen einfachen und doppelten Unterstrichen in Python-Objektnamen?

Was ist der Unterschied zwischen einfachen und doppelten Unterstrichen in Python-Objektnamen?

DDD
DDDOriginal
2024-12-24 08:32:14605Durchsuche

What's the Difference Between Single and Double Underscores in Python Object Names?

Unterstriche in Python-Objektnamen entmystifizieren

In Python spielen Namenskonventionen eine entscheidende Rolle bei der Benennung von Objekten. Einfache und doppelte Unterstriche vor dem Namen eines Objekts haben bestimmte Bedeutungen, die Programmierern dabei helfen, den Umfang und die Zugänglichkeit dieses Objekts zu verstehen.

Einzelner Unterstrich (_name)

Ein einzelner führender Unterstrich im Namen eines Objekts weist darauf hin, dass es für die interne Verwendung innerhalb der Klasse gedacht ist. Dies ist eine Möglichkeit, anzugeben, dass auf das Objekt nicht von außerhalb der Klasse zugegriffen oder es geändert werden soll. Es ist jedoch wichtig zu beachten, dass es sich bei dieser Konvention um eine Richtlinie und nicht um eine erzwungene Einschränkung handelt.

Einzelne Unterstriche werden auch verwendet, um Module oder Funktionen zu kennzeichnen, die nicht von anderswo importiert werden sollten. Indem dem Namen des Objekts ein Unterstrich vorangestellt wird, bedeutet dies für andere Programmierer, dass es als privates Element behandelt werden soll.

Doppelter Unterstrich (__name__)

Doppelte führende Unterstriche werden für die Namensverfälschung verwendet, eine Technik, die den Namen des Objekts im Hintergrund ändert. Diese Transformation ersetzt den Namen des Objekts durch eine modifizierte Version, die den Klassennamen und Unterstriche enthält.

Laut Python-Dokumentation geben doppelte Unterstriche an, dass ein Objekt als private Variable oder Methode innerhalb der aktuellen Klasse behandelt werden sollte. Es ist jedoch wichtig zu verstehen, dass Namensverfälschung nicht absolut ist. Bestimmte Personen können weiterhin auf als privat markierte Variablen zugreifen oder diese ändern.

Beispiel

Betrachten wir die folgende Python-Klasse:

class MyClass():
    def __init__(self):
        self.__superprivate = "Hello"
        self._semiprivate = ", world!"

mc = MyClass()
print(mc._semiprivate)  # Accessible
print(mc.__superprivate)  # Not accessible outside the class

In In diesem Beispiel wird die Variable __superprivate mit doppelten Unterstrichen als privat markiert, während die Variable _semiprivate einen einzelnen Unterstrich verwendet unterstreichen. Auf die Variable __superprivate kann außerhalb der Klasse nicht zugegriffen werden, während auf die Variable _semiprivate zugegriffen werden kann, sie jedoch als klassenintern betrachtet werden sollte.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen einfachen und doppelten Unterstrichen in Python-Objektnamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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