Správa přístupu k datům: privátní atributy

Object-Oriented Programming in Python

Alex Yarosh

Content Quality Analyst @ DataCamp

Všechna data třídy jsou veřejná

všichni jsme zde dospělí

Object-Oriented Programming in Python

Omezení přístupu

  • Konvence pojmenování
  • Použití @property pro řízení přístupu
  • Přepsání __getattr__() a __setattr__()
Object-Oriented Programming in Python

Konvence pojmenování: interní atributy

obj._att_name, obj._method_name()

  • Začíná jedním _ → „interní"
  • Není součástí veřejného API
  • Pro uživatele třídy: „nesahejte na to"
  • Pro vývojáře třídy: použijte pro implementační detaily, pomocné funkce..

df._is_mixed_type , datetime._ymd2ord()

Object-Oriented Programming in Python

Konvence pojmenování: pseudoprivátní atributy

obj.__attr_name , obj.__method_name()

  • Začíná, ale nekončí __ → „privátní"
  • Není dědičný
  • Name mangling: obj.__attr_name je interpretováno jako obj._MyClass__attr_name
  • Slouží k předcházení kolizím názvů v dědičných třídách

 

Úvodní i koncové __ jsou používány výhradně pro vestavěné metody Pythonu (__init__(),__repr__())!

Object-Oriented Programming in Python

Pojďme si procvičit!

Object-Oriented Programming in Python

Preparing Video For Download...