Junior — Middle
Vysvetlite rozdiely v používaní jedného a dvojitého podčiarknutia v menách premenných a metód v Pythone.
sobes.tech AI
Odpoveď od AI
V Pythone je podčiarknutie na začiatku mena premennej alebo metódy (napríklad _var) konvenciou, ktorá naznačuje, že toto meno je určené na interné použitie (chránené) a nemalo by sa používať mimo triedy alebo modulu. Je to len odporúčanie, interpretátor nebráni prístupu.
Dvojité podčiarknutie na začiatku mena (napríklad __var) aktivuje mechanizmus name mangling — meno premennej alebo metódy je zmenené interpretátorom, aby sťažilo prístup zvonku z triedy. Toto sa používa na vytváranie súkromných atribútov, ktoré sú ťažko prepísateľné alebo náhodne použiteľné v podtriedach.
Príklad:
class MyClass:
def __init__(self):
self._protected = 1 # konvencia: chránený atribút
self.__private = 2 # name mangling
obj = MyClass()
print(obj._protected) # prístup možný, ale neodporúča sa
# print(obj.__private) # spôsobí chybu AttributeError
print(obj._MyClass__private) # prístup k "súkromnému" atribútu cez name mangling
Takže, jednoduché podčiarknutie je konvencia, dvojité je mechanizmus skrytia mena.