Sobes.tech
Junior — Middle

Python-da dəyişən və metod adlarında tək və cüt alt xətanın istifadəsindəki fərqləri izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

Python-da, dəyişən və ya metod adının əvvəlində tək alt xətt (_var) istifadə etmək, bu adın daxili istifadə üçün (mühafizə olunmuş) nəzərdə tutulduğunu göstərən ənənədir və sinif və ya modul xaricində istifadə edilməməlidir. Bu sadəcə tövsiyədir, interpretator girişə qadağa qoymur.

İki alt xətt (__var) ilə başlayan ad, name mangling mexanizmini aktivləşdirir — dəyişən və ya metodun adı interpretator tərəfindən dəyişdirilir, sinif xaricindən giriş çətinləşdirilir. Bu, xüsusi atributlar yaratmaq üçün istifadə olunur, onları dəyişdirmək və ya təsadüfən alt siniflərdə istifadə etmək çətin olur.

Misal:

class MyClass:
    def __init__(self):
        self._protected = 1  # ənənə: qorunan atribut
        self.__private = 2   # name mangling

obj = MyClass()
print(obj._protected)    # giriş mümkündür, amma tövsiyə edilmir
# print(obj.__private)   # AttributeError xətası verəcək
print(obj._MyClass__private)  # "özəl" atributa name mangling vasitəsilə giriş

Beləliklə, tək alt xətt ənənədir, iki alt xətt isə ad gizlətmə mexanizmidir.