Sobes.tech
Junior — Middle

Објасните разлике у коришћењу једне и двоструке подзнаке у именима променљивих и метода у Python-у.

sobes.tech АИ

Одговор од АИ

U Pythonu, jednostruko donje crte na početku imena promenljive ili metode (npr., _var) je konvencija koja ukazuje da je to ime namenjeno za internu upotrebu (zaštićeno) i ne bi trebalo da se koristi van klase ili modula. To je samo preporuka, interpreter ne zabranjuje pristup.

Duple donje crte na početku imena (npr., __var) aktiviraju mehanizam name mangling — ime promenljive ili metode se menja od strane interpreter-a kako bi otežao pristup sa strane klase. Ovo se koristi za kreiranje privatnih atributa, koji su teže za prepisivanje ili slučajno korišćenje u podklasama.

Primer:

class MyClass:
    def __init__(self):
        self._protected = 1  # konvencija: zaštićeni atribut
        self.__private = 2   # name mangling

obj = MyClass()
print(obj._protected)    # pristup moguć, ali se ne preporučuje
# print(obj.__private)   # izazvaće AttributeError
print(obj._MyClass__private)  # pristup "privatnom" atributu putem name mangling-a

Dakle, jednostruko donje crte je konvencija, a dvostruko mehanizam skrivanja imena.