Heim >Backend-Entwicklung >Python-Tutorial >Was ist der Unterschied zwischen einfachen und doppelten Unterstrichen in Python?
Eintauchen in Pythons einfache und doppelte Unterstriche
Pythons Verwendung von führenden Unterstrichen vor Objektnamen vermittelt bestimmte Bedeutungen und Verhaltensweisen.
Einzelner Unterstrich: „Interne Verwendung“ Indikator
Ein einzelner Unterstrich zeigt an, dass ein Attribut oder eine Methode zur Verwendung innerhalb einer eigenen Klasse vorgesehen ist. Es handelt sich um eine Konvention und nicht um eine erzwungene Regel, um externen Zugriff zu verhindern. Wenn außerdem ein einzelner Unterstrich vor Funktionsnamen in einem Modul steht, bedeutet dies, dass diese nicht von außerhalb des Moduls importiert werden sollten.
Doppelte Unterstriche: Namensverfälschung
Doppelte Unterstriche Trigger-Namensmangling, ein Prozess, bei dem dem Bezeichner der Klassenname vorangestellt wird, wobei führende Unterstriche entfernt werden. Dies wird für „private“ Klassenmitglieder durchgeführt, um Konflikte mit Mitgliedern abgeleiteter Klassen oder externem Code zu vermeiden. Es ist jedoch wichtig zu beachten, dass bestimmte Benutzer weiterhin auf diese Variablen zugreifen können.
Beispiel:
Im folgenden Beispiel soll __superprivate außerhalb der Klasse nicht zugänglich sein. während _semiprivate der Konvention für den internen Gebrauch folgt:
class MyClass: def __init__(self): self.__superprivate = "Hello" self._semiprivate = ", world!"
Nur beim Zugriff auf diese Mitglieder außerhalb der Klasse _semiprivate wird offengelegt:
mc = MyClass() print(mc._semiprivate) # "Hello" print(mc.superprivate) # Attribute error
Daher weisen einzelne Unterstriche auf die beabsichtigte interne Verwendung hin, während doppelte Unterstriche Mitglieder vor direktem Zugriff durch Namensverfälschung schützen und eine Datenschutzebene, aber keine absolute Sicherheit bieten.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen einfachen und doppelten Unterstrichen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!