Data toegang beheren: private attributen

Objectgeoriënteerd programmeren in Python

Alex Yarosh

Content Quality Analyst @ DataCamp

Alle klasse data is openbaar

we zijn allemaal volwassenen hier

Objectgeoriënteerd programmeren in Python

Toegang beperken

  • Naamgevingsconventies
  • Gebruik @property voor aangepaste toegang
  • Overschrijven van __getattr__() en __setattr__()
Objectgeoriënteerd programmeren in Python

Naamgeving: interne attributen

obj._att_name, obj._method_name()

  • Begint met een enkele _ → "intern"
  • Geen deel van de openbare API
  • Als klassegebruiker: "niet aanraken"
  • Als klasseontwikkelaar: gebruik voor implementatiedetails, hulpfuncties..

df._is_mixed_type , datetime._ymd2ord()

Objectgeoriënteerd programmeren in Python

Naamgeving: pseudoprivé attributen

obj.__attr_name , obj.__method_name()

  • Begint maar eindigt niet met __ → "privé"
  • Niet geërfd
  • Naamverhaspeling: obj.__attr_name wordt obj._MyClass__attr_name
  • Gebruikt om naamconflicten in geërfde klassen te voorkomen

 

Leidende en afsluitende __ worden alleen gebruikt voor ingebouwde Python-methoden (__init__(),__repr__())!

Objectgeoriënteerd programmeren in Python

Aan de slag!

Objectgeoriënteerd programmeren in Python

Preparing Video For Download...