Erklären Sie die Unterschiede bei der Verwendung eines und zweier Unterstriche in Variablen- und Methodennamen in Python.
sobes.tech KI
Antwort von AI
In Python ist ein Unterstrich am Anfang des Variablennamens oder einer Methode (z.B. _var) eine Konvention, die angibt, dass dieser Name für den internen Gebrauch bestimmt ist (geschützt) und außerhalb der Klasse oder des Moduls nicht verwendet werden sollte. Es ist nur eine Empfehlung, der Interpreter verbietet den Zugriff nicht.
Doppelter Unterstrich am Anfang des Namens (z.B. __var) aktiviert den name mangling Mechanismus — der Name der Variablen oder Methode wird vom Interpreter geändert, um den Zugriff außerhalb der Klasse zu erschweren. Dies wird verwendet, um private Attribute zu erstellen, die schwer zu überschreiben oder versehentlich in Unterklassen zu verwenden sind.
Beispiel:
class MyClass:
def __init__(self):
self._protected = 1 # Konvention: geschütztes Attribut
self.__private = 2 # name mangling
obj = MyClass()
print(obj._protected) # Zugriff möglich, aber nicht empfohlen
# print(obj.__private) # führt zu einem AttributeError
print(obj._MyClass__private) # Zugriff auf "private"-Attribut via name mangling
Daher ist ein einzelner Unterstrich eine Konvention, der doppelte eine Mechanismus zur Namensverbergung.