Junior — Middle
Ako sa implementuje princíp zapuzovania v jazyku Python?
sobes.tech AI
Odpoveď od AI
V Pythone je enkapsulácia realizovaná pomocou konvencií pomenovania a špeciálnych mechanizmov, pretože jazyk nemá prísnu súkromie ako v niektorých iných jazykoch.
- Verejné atribúty a metódy — názvy bez podčiarkovníkov, dostupné všade.
- Chránené (protected) atribúty — názvy s jedným podčiarkovníkom
_atribút, signalizujú, že prvok je určený na interné použitie, ale technicky je dostupný zvonku. - Súkromné (private) atribúty — názvy s dvomi podčiarkovníkmi
__atribút, spôsobujú mangle mena, čo sťažuje prístup zvonku triedy.
Príklad:
class MyClass:
def __init__(self):
self.public = "prístupné všetkým"
self._protected = "odporúča sa nepoužívať mimo triedy"
self.__private = "skryté pred vonkajším prístupom"
obj = MyClass()
print(obj.public) # funguje
print(obj._protected) # funguje, ale neodporúča sa
# print(obj.__private) # spôsobí chybu
print(obj._MyClass__private) # prístup cez mangle mena
Týmto spôsobom je enkapsulácia v Pythone skôr dohoda a používanie mechanizmov mangle, než prísne obmedzenia.