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.