Sobes.tech
Junior — Middle
82

Python-да деректерді жасыру қалай жүзеге асырылады және оған қол жеткізуді қалай шектеуге болады?

AI-дан жауап

sobes.tech AI

Python-да деректерді жасыру келісімдер мен атрибуттарды атау механизмдері арқылы жүзеге асырылады, кейбір басқа тілдердегідей қатаң қол жеткізу шектеуі емес.

  • Бір сызықша _variable атрибут немесе әдіс қорғалған (protected) деп белгіленеді және ол сынып немесе оның мұрагерлерінен тыс қолдануға арналмаған. Бұл келісім, тыйым емес.
  • Екі сызықша __variable name mangling механизмін іске қосады, яғни атрибуттың аты сынып ішінде өзгертіледі, бұл сырттан қол жеткізуді қиындатады. Мысалы, __var сынып ішінде MyClass деп аталса, ол _MyClass__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 (name mangling арқылы қол жеткізу)

Осылайша, Python-да деректерді жасыру — бұл көбінесе келісім және name mangling-ды пайдалану арқылы тікелей қол жеткізуді қиындату.