Junior — Middle
101
Python-да деректерді инкапсуляциялау принципі қалай жүзеге асырылады?
Сұралған компаниялар
СБЕР Бизнес
ИП Калюков Н.С.
Effective Mobile
AI-дан жауап
sobes.tech AI
Python-да инкапсуляция атау беру атаулары мен арнайы механизмдер арқылы жүзеге асырылады:
- Бір сызықша (_)var — бұл өріс немесе әдіс қорғалған (protected) деп белгіленеді, яғни ол сыныптан немесе оның мұрагерлерінен тыс қолдануға арналмаған.
- Екі сызықша (__var) — атау манглингін шақырады, бұл сырттан қол жеткізуді қиындатады, яғни жекешелендіруді имитациялайды.
Мысал:
class MyClass:
def __init__(self):
self.public = 1
self._protected = 2
self.__private = 3
obj = MyClass()
print(obj.public) # 1
print(obj._protected) # 2 (бірақ келісім бойынша қолдануға болмайды)
# print(obj.__private) # Қате AttributeError
print(obj._MyClass__private) # 3 (манглинг арқылы қол жеткізу)
Осылайша, Python-да инкапсуляция келісімдер мен манглинг механизмдеріне негізделген, қатал шектеулерге емес, кейбір басқа тілдердегідей.