Sobes.tech
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)_var bilan boshlanuvchi nomlar. Bu atribut yoki metodning ichki foydalanish uchun mo'ljallanganligini ko'rsatadigan konvensiya, lekin texnik jihatdan tashqaridan kirish mumkin.
  • Maxfiy (private)__var bilan 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.