Heim  >  Artikel  >  Backend-Entwicklung  >  Python – So definieren Sie öffentliche, private und geschützte Variablen in einer Klasse

Python – So definieren Sie öffentliche, private und geschützte Variablen in einer Klasse

WBOY
WBOYOriginal
2024-09-12 10:22:19929Durchsuche

Python -How to define public, private and protected variables in a class

Einführung

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.

1. Öffentliche Variablen

Ö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.

2. Geschützte Variablen

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.

3. Private Variablen

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.

Zusammenfassung

  • Öffentliche Variablen: Von überall aus zugänglich; keine Unterstriche.
  • Geschützte Variablen: Innerhalb der Klasse und ihrer Unterklassen zugänglich; mit einem einzelnen Unterstrich (_) vorangestellt.
  • Private Variablen: Nur innerhalb der Klasse zugänglich; mit einem doppelten Unterstrich (__) vorangestellt.

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!

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