Muchos programadores principiantes en Python consideran que el guion (_) es simplemente parte de los nombres de las variables. Pero, en realidad, este símbolo realiza tareas importantes y multifuncionales, especialmente en manos de desarrolladores experimentados 🧫🐍
Vamos a analizarlo 7 usos avanzados del subrayado en Pythonque sorprenderán incluso a quienes ya llevan años escribiendo código.

🔁 1. Obtener el último valor calculado en REPL
Si trabaja en un entorno interactivo Python (por ejemplo, en la terminal o en Jupyter Notebook), el símbolo _ le permite obtener resultado de la última operación sin guardarlo en una variable.
Ejemplo:
>>> 5 + 10
15
>>> _ * 2
30Muy conveniente para cálculos rápidos: no es necesario introducir un nuevo nombre de variable cada vez ✨
🖂 2. Variable de marcador de posición en el ciclo
Cuando la variable de bucle no se utiliza en el cuerpo, en su lugar se puede sustituir _. Esto subraya: variable ignorada intencionalmente.
Ejemplo:
for _ in range(3):
print("Hi!")Conclusión:
Привет!
Привет!
Привет!Este enfoque se utiliza a menudo en repetir acciones varias veces, donde el índice de iteración no es importante.
💡 3. Separación de dígitos para facilitar la lectura
Los números grandes son difíciles de leer. En Python puedes separar visualmente los números con guiones bajos, sin afectar el significado.
Ejemplo:
сумма = 1_000_000 # lo mismo que 1000000
print(сумма)Conclusión:
1000000Útil para trabajar con finanzas 💸, ciencia 🧪 o simplemente para mejorar la legibilidad.
🔐 4. Variables internas y name mangling
Dentro de las clases, las variables que comienzan con un doble guion bajo (__var), se consideran privados. Python cambia automáticamente su nombre (name mangling) para dificultar el acceso desde el exterior.
Ejemplo:
class Example:
def __init__(self):
self.__secret = "hidden"
def reveal(self):
return self.__secret
e = Example()
# print(e.__secret) # ¡Error!
print(e.reveal()) # funciona ✅📌 Aunque es posible evitar esta restricción (e._Example__secret), hacerlo no recomendado. ¡Es un mecanismo interno!
⚠️ 5. Resolución de conflictos de palabras clave
Si necesitas usar un nombre de variable que coincida con una palabra clave de Python (por ejemplo, class), añade un guion bajo al final.
Ejemplo:
def describe(class_):
return f"This is class: {class_}"
print(describe("Python"))Ahora class_ es un nombre válido y evitas conflictos con la sintaxis del lenguaje.
🔏 6. Atributos privados en las clases
Además del punto 4: el doble guion bajo al principio del atributo lo hace "privado". Esto no protección, sino acuerdo para otros desarrolladores: «No tocar sin necesidad».
Ejemplo:
class Hidden:
def __init__(self):
self.__data = "secret"
h = Hidden()
# print(h.__data) # error
print(h._Hidden__data) # funcionará, pero no es necesario hacerlo✨ 7. Métodos mágicos (dunder)
Los métodos con guiones bajos dobles en los bordes (__method__) son métodos mágicos, que definen el comportamiento de los objetos al interactuar con el operador +, ==, print(), etc.
Ejemplo:
class Magic:
def __init__(self, value):
self.value = value
def __str__(self):
return f"Magic with the number {self.value}"
print(Magic(42))Conclusión:
Magic с числом 42🤹♀️ Una guía útil sobre métodos mágicos:
Método | ¿Qué hace? |
|---|---|
| Inicialización del objeto |
| Representación de texto ( |
| Longitud del objeto |
| Hace que el objeto sea invocable como una función |
| Acceso por índice |
| Asignación por índice |
| Operador |
| Comparación |
| Suma |
| Hace que el objeto sea iterable |
🎯 Estos métodos permiten crear clases propias que se comportan como tipos integrados — bonito, conciso y potente.
✅ Resultados
El subrayado en Python es no solo sintaxis, y herramienta multifuncional:
ayuda a escribir de forma más clara y comprensible
hace que el código sea expresivo
oculta lo innecesario del usuario
amplía las posibilidades de las clases
Prueba estas técnicas en tu código y verás cómo Python se vuelve aún más potente 💪🐍
