Junior — Middle
Pythonда объекттин ички ишке ашырылышын жана маалыматтарды тышкы кирүүдөн жашыруу кантип жетишилет?
sobes.tech AI
AIден жооп
Python'da, ob'ektin ichki amalga oshirilishini va ma'lumotlarni yashirish konventsiyalar va inkapsulatsiya mexanizmlari bilan amalga oshiriladi:
- Yagona chiziq (_var) — atribut yoki metod ichki foydalanish uchun mo'ljallanganligini bildiradi (himoyalangan), ammo texnik jihatdan tashqaridan kirish mumkin.
- Ikki chiziq (__var) — name mangling ga olib keladi (nomni o'zgartirish), bu tashqaridan atributga kirishni qiyinlashtiradi, masalan,
__var_ClassName__varga aylanadi. Bu tasodifiy ustunliklarni oldini olish va ma'lumotlarni yashirish uchun xizmat qiladi.
Misol:
class MyClass:
def __init__(self):
self.public = "hamma uchun ochiq"
self._protected = "ichki foydalanish uchun"
self.__private = "tashqaridan kirishdan yashirilgan"
obj = MyClass()
print(obj.public) # ochiq
print(obj._protected) # ochiq, ammo tavsiya etilmaydi
print(obj._MyClass__private) # name mangling orqali "maxfiy" atributga kirish
Shu tarzda, Python'da qat'iy maxfiy kirish yo'q, ammo ma'lumotlarni to'g'ridan-to'g'ri kirishdan yashirish uchun konvensionsiyalar va mexanizmlar mavjud.