Datenzugriff verwalten: private Attribute

Objektorientierte Programmierung in Python

Alex Yarosh

Content Quality Analyst @ DataCamp

Alle Klassendaten sind öffentlich

wir sind alle erwachsen hier

Objektorientierte Programmierung in Python

Zugriff einschränken

  • Namenskonventionen
  • @property für angepassten Zugriff
  • __getattr__() und __setattr__() überschreiben
Objektorientierte Programmierung in Python

Namenskonvention: interne Attribute

obj._att_name, obj._method_name()

  • Beginnt mit einem _ → "intern"
  • Kein Teil der öffentlichen API
  • Als Klassenbenutzer: "nicht anfassen"
  • Als Entwickler: für Implementierungsdetails, Hilfsfunktionen..

df._is_mixed_type, datetime._ymd2ord()

Objektorientierte Programmierung in Python

Namenskonvention: pseudoprivate Attribute

obj.__attr_name, obj.__method_name()

  • Beginnt, aber endet nicht mit __ → "privat"
  • Nicht vererbt
  • Namensveränderung: obj.__attr_name wird als obj._MyClass__attr_name interpretiert
  • Verhindert Namenskonflikte in vererbten Klassen

 

Führende und abschließende __ werden nur für eingebaute Python-Methoden verwendet (__init__(), __repr__())!

Objektorientierte Programmierung in Python

Lass uns üben!

Objektorientierte Programmierung in Python

Preparing Video For Download...