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__varolur. 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.