Python bietet als objektorientierte Programmiersprache verschiedene Möglichkeiten, Daten innerhalb einer Klasse zu kapseln.
Einer der Schlüsselaspekte dieser Kapselung ist die Sichtbarkeit von Klassenvariablen, die als öffentlich, geschützt und privat kategorisiert werden können. In diesem Artikel erfahren Sie, wie Sie öffentliche, private und geschützte Variablen in einer Python-Klasse definieren.
Das Verhalten dieser Variablen unterscheidet sich deutlich von dem anderer Programmiersprachen. Bei diesen Zugriffskontrollen handelt es sich lediglich um Namenskonventionen in Python und nicht um das tatsächliche Verstecken von Objekten.
Öffentliche Variablen sind der am besten zugängliche Variablentyp. Sie sind von überall aus zugänglich, sowohl innerhalb als auch außerhalb der Klasse. In Python sind alle Klassenvariablen standardmäßig öffentlich, sofern nicht ausdrücklich anders definiert.
Beispiel:
class MyClass: def __init__(self, name): self.name = name # Public variable obj = MyClass("John") print(obj.name) # Accessible outside the class #Output : John
In diesem Beispiel ist name eine öffentliche Variable. Sie können ohne Einschränkungen von außerhalb der Klasse darauf zugreifen und Änderungen vornehmen.
Auf geschützte Variablen soll nur innerhalb der Klasse und ihrer Unterklassen zugegriffen werden. Während Python keine strengen Zugriffskontrollen erzwingt, besteht die Konvention zur Angabe, dass eine Variable geschützt ist, darin, ihrem Namen einen einzelnen Unterstrich (_) voranzustellen.
Beispiel:
class MyClass: def __init__(self, name, age): self._age = age # Protected variable class ChildClass(MyClass): def display(self): print(f"Age: {self._age}") # Accessible within a subclass obj = ChildClass("John", 30) obj.display() # Output: Age: 30
In diesem Beispiel ist das Alter eine geschützte Variable. Obwohl Python Sie nicht daran hindert, direkt außerhalb der Klasse darauf zuzugreifen, verstößt dies gegen die beabsichtigte Verwendung.
Auf private Variablen darf nur innerhalb der Klasse zugegriffen werden, die sie definiert. Python kennzeichnet private Variablen, indem es dem Variablennamen einen doppelten Unterstrich (__) voranstellt. Dies löst eine Namensverfälschung aus, die den Zugriff auf private Variablen von außerhalb der Klasse erschwert (aber nicht unmöglich macht).
Beispiel:
class MyClass: def __init__(self, name, age, salary): self.__salary = salary # Private variable def display_salary(self): print(f"Salary: {self.__salary}") # Accessible within the class obj = MyClass("John", 30, 50000) obj.display_salary() # Output: Salary: 50000 # Trying to access the private variable outside the class print(obj.__salary) # Raises AttributeError
In diesem Beispiel ist das Gehalt eine private Variable. Wenn Sie versuchen, direkt von außerhalb der Klasse darauf zuzugreifen, löst Python einen AttributeError aus. Sie können jedoch immer noch mit der namentlich verstümmelten Version darauf zugreifen, allerdings wird davon abgeraten.
Beispiel für Namensverfälschung:
print(obj._MyClass__salary) # Output: 50000
Diese Codezeile zeigt, wie private Variablen intern umbenannt werden, um den Klassennamen einzuschließen, wodurch sie weniger zugänglich werden.
Während die Zugriffskontrollen von Python auf Namenskonventionen und nicht auf strikter Durchsetzung basieren, trägt die Befolgung dieser Konventionen dazu bei, die Klarheit und Integrität des Codes zu wahren. Für eine effektive objektorientierte Programmierung in Python ist es von entscheidender Bedeutung, zu verstehen, wie öffentliche, geschützte und private Variablen definiert und verwendet werden.
Das obige ist der detaillierte Inhalt vonPython – So definieren Sie öffentliche, private und geschützte Variablen in einer Klasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!