Junior — Middle
¿Cuál es la diferencia entre un guion bajo y dos guiones bajos en los nombres de variables o métodos?
sobes.tech AI
Respuesta de la IA
En Python, el guion bajo al principio del nombre (por ejemplo, _variable) se usa como una convención que indica que la variable o método son internos (protegidos) y no están destinados a usarse fuera de la clase o módulo. Esto no impide el acceso, pero advierte a otros desarrolladores sobre su uso interno.
El doble guion bajo al principio del nombre (por ejemplo, __variable) activa el mecanismo de name mangling — cambio del nombre de la variable para evitar conflictos en las subclases. Python cambia el nombre de la variable añadiendo el nombre de la clase, dificultando el acceso directo desde fuera.
Ejemplo:
class MyClass:
def __init__(self):
self._protected = 1 # uso interno
self.__private = 2 # el nombre cambiará a _MyClass__private
obj = MyClass()
print(obj._protected) # acceso posible
# print(obj.__private) # generará un error AttributeError
print(obj._MyClass__private) # acceso mediante name mangling posible