{}const=>[]async()letfn</>var
DesarrolloFundamentos

7 formas de usar el guion bajo (_) en Python que casi nadie conoce

7 formas inesperadas de usar el guion bajo en Python ¡El guion bajo no es solo una parte de los nombres de las variables! En este artículo te explicamos cómo usarlo para mejorar la legibilidad del código, crear variables privadas, trabajar con métodos mágicos y mucho más.

К

Kodik

Autor

3 min de lectura

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
30

Muy conveniente para cálculos rápidos: no es necesario introducir un nuevo nombre de variable cada vez ✨


🔥 100.000+ estudiantes ya están con nosotros

¿Cansado de leer teoría?
¡Hora de programar!

Kodik — una app donde aprendes a programar con práctica. Mentor IA, lecciones interactivas, proyectos reales.

🤖 IA 24/7
🎓 Certificados
💰 Gratis
🚀 Empezar
Se unieron hoy

🖂 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?

__init__

Inicialización del objeto

__str__

Representación de texto (print())

__len__

Longitud del objeto

__call__

Hace que el objeto sea invocable como una función

__getitem__

Acceso por índice

__setitem__

Asignación por índice

__contains__

Operador in

__eq__

Comparación ==

__add__

Suma +

__iter__

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 💪🐍

🎯Deja de postergar

¿Te gustó el artículo?
¡Hora de practicar!

En Kodik no solo lees — escribes código de inmediato. Teoría + práctica = habilidades reales.

Práctica instantánea
🧠IA explica código
🏆Certificado

Sin registro • Sin tarjeta