Sobes.tech
Junior — Middle

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.