Junior — Middle
Magyarázza el az egy és dupla aláhúzás használatának különbségeit a változók és módszerek nevében Pythonban.
sobes.tech MI
Válasz az MI-től
Pythonban az egyes aláhúzás a változó vagy metódus nevének elején (például _var) egy konvenció, amely jelzi, hogy ez a név belső használatra (védett) szánt, és nem szabad a osztály vagy modul kívül használni. Ez csak egy ajánlás, az értelmező nem tiltja a hozzáférést.
A dupla aláhúzás a név elején (például __var) aktiválja a name mangling mechanizmust — a változó vagy metódus neve az értelmező által módosul, hogy megnehezítse a hozzáférést az osztályon kívülről. Ez privát attribútumok létrehozására szolgál, amelyek nehezen felülírhatók vagy véletlenül használhatók alosztályokban.
Példa:
class MyClass:
def __init__(self):
self._protected = 1 # konvenció: védett attribútum
self.__private = 2 # name mangling
obj = MyClass()
print(obj._protected) # hozzáférés lehetséges, de nem ajánlott
# print(obj.__private) # AttributeError-t fog eredményezni
print(obj._MyClass__private) # hozzáférés a "privát" attribútumhoz name mangling segítségével
Tehát az egyes aláhúzás egy konvenció, a dupla pedig a név elrejtésének mechanizmusa.