Sobes.tech
Junior — Middle
101

Python-да деректерді инкапсуляциялау принципі қалай жүзеге асырылады?

Сұралған компаниялар
СБЕР Бизнес
МТСМТС
ИП Калюков Н.С.
AstonAston
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-да инкапсуляция келісімдер мен манглинг механизмдеріне негізделген, қатал шектеулерге емес, кейбір басқа тілдердегідей.