Middle+
Python'da inkapsulyatsiya qanday amalga oshiriladi? Kirish modifikatorlari haqida gapir.
sobes.tech AI
AIdan javob
Python'da inkapsulasiya nomlash konvensiyalari va sinf xususiyatlari orqali amalga oshiriladi, chunki boshqa tillardagi (private, protected, public) kabi qat'iy kirish modifikatorlari mavjud emas.
- Jamoat atributlari va metodlar — past chiziqsiz nomlar, har joyda mavjud.
- Himoyalangan (protected) —
_varbilan boshlanuvchi nomlar. Bu atribut yoki metodning ichki foydalanish uchun mo'ljallanganligini ko'rsatadigan konvensiya, lekin texnik jihatdan tashqaridan kirish mumkin. - Maxfiy (private) —
__varbilan boshlanuvchi nomlar. Python nomlarni mangling qilish orqali, atribut nomini sinf ichida o'zgartiradi va tashqaridan kirishni qiyinlashtiradi.
Misol:
class MyClass:
def __init__(self):
self.public = "hamma uchun ochiq"
self._protected = "sinfdan va meroslardan tashqarida ishlatmaslik tavsiya etiladi"
self.__private = "to'g'ridan-to'g'ri kirishdan yashirilgan"
obj = MyClass()
print(obj.public) # ishlaydi
print(obj._protected) # ishlaydi, lekin tavsiya etilmaydi
# print(obj.__private) # xato bo'ladi
print(obj._MyClass__private) # nom mangling orqali kirish
Shu bilan, Python'da inkapsulasiya ko'proq kelishuv va mangling mexanizmi bo'lib, qat'iy kirish modifikatorlari emas.