Zugriffsmodifikatoren in Python: Öffentlich, Privat und Geschützt

PHPz
Freigeben: 2023-09-02 19:17:06
nach vorne
1577 Leute haben es durchsucht

Zugriffsmodifikatoren in Python: Öffentlich, Privat und Geschützt

Zugriffsmodifikatoren werden von objektorientierten Programmiersprachen wie C++, Java, Python usw. verwendet, um den Zugriff auf die Klassenmitgliedsvariablen und -methoden von außerhalb der Klasse zu beschränken Die Klasse verwendet Zugriffsmodifikatoren wie Public, Private und Protected.

Python unterstützt drei Zugriffsmodifikatoren: öffentlich, privat und geschützt. Diese Zugriffsmodifikatoren beschränken den Zugriff auf die Mitgliedsvariablen und Methoden einer Klasse von jedem Objekt außerhalb der Klasse aus.

Modifikator für den öffentlichen Zugriff

Standardmäßig sind die Mitgliedsvariablen und -methoden öffentlich, was bedeutet, dass von überall außerhalb oder innerhalb der Klasse auf sie zugegriffen werden kann. Es ist kein öffentliches Schlüsselwort erforderlich, um die Klasse oder Methoden und Eigenschaften öffentlich zu machen. Hier ist ein Beispiel für den öffentlichen Zugriffsmodifikator −

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Die Schülerklasse verfügt über zwei Mitgliedsvariablen, Name und Alter, sowie eine Methodenanzeige, die die Werte der Mitgliedsvariablen ausgibt. Sowohl diese Variablen als auch die Methoden sind öffentlich, da ihnen kein bestimmtes Schlüsselwort zugewiesen ist.

class Student:
   def __init__(self, name, age):
      self.name = name
      self.age = age
    
   def display(self):
      print("Name:", self.name)
      print("Age:", self.age)

s = Student("John", 20)
s.display() 
Nach dem Login kopieren

Ausgabe

Name: John
Age: 20
Nach dem Login kopieren

Privater Zugriffsmodifikator

Auf Klasseneigenschaften und -methoden mit privatem Zugriffsmodifikator kann nur innerhalb der Klasse zugegriffen werden, in der sie definiert sind, und nicht außerhalb der Klasse. In Python werden private Eigenschaften und Methoden durch Hinzufügen eines Präfixes mit zwei Unterstrichen ('__') vor ihnen deklariert Erklärung.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Die Klasse „BankAccount“ wird mit zwei privaten Variablen deklariert, nämlich „account_number“ und „balance“, und einer privaten Eigenschaft „display_balance“, die den Kontostand des Bankkontos ausgibt. Da sowohl die Eigenschaften als auch die Methode privat sind, wird beim Zugriff darauf von außerhalb der Klasse ein Attributfehler ausgelöst.

class BankAccount:
   def __init__(self, account_number, balance):
      self.__account_number = account_number
      self.__balance = balance
    
   def __display_balance(self):
      print("Balance:", self.__balance)

b = BankAccount(1234567890, 5000)
b.__display_balance() 
Nach dem Login kopieren

Ausgabe

AttributeError: 'BankAccount' object has no attribute '__display_balance'
Nach dem Login kopieren

Geschützter Zugriffsmodifikator

Auf Klasseneigenschaften und -methoden mit geschütztem Zugriffsmodifikator kann innerhalb der Klasse und in Klassen zugegriffen werden, die die geschützte Klasse erben. In Python werden geschützte Mitglieder und Methoden mit einem einzelnen Unterstrich („_“) als Präfix vor ihrem Namen deklariert.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Die Person-Klasse verfügt über zwei geschützte Attribute, nämlich _name und _age, sowie eine geschützte Methode _display, mit der die Attributwerte der Person-Klasse angezeigt werden. Die Student-Klasse erbt von der Person-Klasse und verfügt über ein zusätzliches geschütztes Attribut _roll_number und eine öffentliche Methode display, die die _display-Methode der Person-Klasse der übergeordneten Klasse aufruft. Indem wir eine Instanz der Student-Klasse erstellen, können wir die Anzeigemethode von außerhalb der Klasse aufrufen. Da die Anzeigemethode privat ist, ruft sie die geschützte _display-Methode der Person-Klasse auf.

class Person:
   def __init__(self, name, age):
      self._name = name
      self._age = age
    
   def _display(self):
      print("Name:", self._name)
      print("Age:", self._age)

class Student(Person):
   def __init__(self, name, age, roll_number):
      super().__init__(name, age)
      self._roll_number = roll_number
    
   def display(self):
      self._display()
      print("Roll Number:", self._roll_number)

s = Student("John", 20, 123)
s.display() 
Nach dem Login kopieren

Ausgabe

Name: John
Age: 20
Roll Number: 123
Nach dem Login kopieren

Fazit

In diesem Artikel haben wir drei Zugriffsmodifikatoren kennengelernt, die zum Verstecken und Schützen von Daten in Python und anderen objektorientierten Programmiersprachen verwendet werden. Öffentlich, privat und geschützt sind die drei in Python verwendeten Zugriffsmodifikatoren. Auf die öffentlichen Eigenschaften und Methoden einer Klasse kann von überall innerhalb oder außerhalb der Klasse zugegriffen werden. Auf private Mitgliedsvariablen und Eigenschaften kann nur innerhalb der Klasse zugegriffen werden, in der sie deklariert sind. Der geschützte Zugriffsmodifikator wird verwendet, wenn wir innerhalb der Klasse und von Klassen, die von dieser Klasse erben, auf die Eigenschaften und Methoden einer Klasse zugreifen müssen.

Das obige ist der detaillierte Inhalt vonZugriffsmodifikatoren in Python: Öffentlich, Privat und Geschützt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!