Sobes.tech
Junior — Middle

Python-da obyektin daxili tətbiqinin gizlənməsi və məlumatların xarici girişdən gizlənməsi necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Python-da, obyektin daxili həyata keçirilməsini və məlumatların gizlənməsini konvensiyalar və inkapsulasiya mexanizmləri ilə əldə etmək mümkündür:

  • Bir alt xətt (_var) — atribut və ya metodun daxili istifadə üçün nəzərdə tutulduğunu göstərir (mühafizə olunmuş), lakin texniki olaraq xaricdən əlçatandır.
  • İki alt xətt (__var)name mangling (adın dəyişdirilməsi) ilə nəticələnir, bu da atributa xaricdən girişini çətinləşdirir, məsələn, __var _ClassName__var olur. Bu, təsadüfi üst-üstə düşmənin qarşısını almaq və məlumatları gizlətmək üçün xidmət edir.

Nümunə:

class MyClass:
    def __init__(self):
        self.public = "hamı üçün əlçatandır"
        self._protected = "daxili istifadə üçün"
        self.__private = "xarici girişdən gizli"

obj = MyClass()
print(obj.public)          # əlçatandır
print(obj._protected)      # əlçatandır, amma tövsiyə edilmir
print(obj._MyClass__private)  # name mangling vasitəsilə "özəl" atributa giriş

Beləliklə, Python-da sərt xüsusi giriş yoxdur, lakin məlumatları birbaşa girişdən gizlətmək üçün konvensiyalar və mexanizmlər mövcuddur.