Middle+
Pythonда инкапсуляция кандайча ишке ашырылат? Кирүү өзгөрмөлөрү жөнүндө айтып бер.
sobes.tech AI
AIден жооп
Python'da inkapsulatsiya nomlash konvensiyalary we synf xususiyatlary arkaly amala aşyrylýar, sebäbi beýleki dillerde (private, protected, public) berk erişim modifikasiýalary ýok.
- Umumy atributlar we metodlar — adlar ýerezsiz, her ýerde elýeterli.
- Goragly (protected) —
_varbilen başlanan adlar. Bu, atribut ýa-da metodyň içki ulanyşa niýetlenendigini görkezýän konwensiýa, emma tehniki taýdan daşardan elýeterlidir. - Hususy (private) —
__varbilen başlanan adlar. Python adlaryň mangling-ni ulanýar, atributyň adyny synf içinde üýtgedip, daşardan elýeterligi kynlaşdyrýar.
Mysal:
class MyClass:
def __init__(self):
self.public = "her kim elýeterli"
self._protected = "synf we miraslar daşary ulanmaly däl"
self.__private = "görnükli elýeterlikden gizlenýär"
obj = MyClass()
print(obj.public) # işleýär
print(obj._protected) # işleýär, emma maslahat berilmeýär
# print(obj.__private) # ýalňyşlyk getirýär
print(obj._MyClass__private) # ad mangling arkaly elýeterlik
Şeýlelikde, Python'da inkapsulýasiýa has köp ylalaşyk we mangling mehanizmi bolup, berk erişim modifikasiýalary däl.