Contenido del curso

Fundamentos de Programación y Python

Programación Orientada a Objetos en Python

`if __name__ == "__main__"` en Python

Resumen

Ejecutar un script de Python directamente desde la terminal con la estructura if __name__ == "__main__" te permite controlar qué parte del código corre cuando llamas al archivo y qué parte queda disponible solo para importar. Es una práctica clave cuando empiezas a trabajar con scripts .py reales.

Esta guía es para ti si ya entiendes funciones en Python y quieres dar el siguiente paso hacia código modular, reutilizable y fácil de depurar.

¿Qué hace __name__ == "__main__" en Python?

La variable __name__ es una variable especial que Python asigna automáticamente a cada archivo. Cuando ejecutas el archivo de manera directa, su valor es "__main__". Cuando lo importas desde otro archivo, su valor cambia al nombre del módulo.

Gracias a esa diferencia, puedes escribir un bloque que solo se ejecute cuando llamas el script directamente. Esto te da tres ventajas concretas:

  • Modularidad: reutilizas las funciones del archivo en otros scripts sin que se ejecute el código de prueba.
  • Pruebas: puedes lanzar ejemplos rápidos dentro del mismo archivo.
  • Depuración: aíslas el comportamiento de ejecución directa del comportamiento como módulo importado.

En el minuto [00:08] se muestra que la variable lleva doble guion bajo al inicio y al final, una convención conocida como dunder (double underscore).

¿Para qué sirve if __name__ == "__main__"? Sirve para indicarle a Python que ejecute un bloque de código solo cuando corres el archivo directamente, no cuando lo importas como módulo desde otro script.

¿Cómo construir una calculadora con ejecución directa?

El ejercicio parte de cuatro funciones básicas: suma, resta, multiplicación y división. Cada función recibe dos parámetros que representan los números de la operación. En la división, si el segundo número es cero, se levanta un error para evitar la división por cero, un detalle visto alrededor de [01:00].

¿Cómo se escribe el bloque if correctamente?

Dentro del archivo, agregas la condición con doble igual, ya que estás comparando valores y no asignando:

python def suma(a, b): return a + b

def resta(a, b): return a - b

def multiplicacion(a, b): return a * b

def division(a, b): if b == 0: raise ValueError("No se puede dividir entre cero") return a / b

if name == "main": print("Estas son las operaciones") res1 = suma(3, 4) print(f"Suma: {res1}") print(f"División: {division(10, 7)}")

La indentación es crítica. Todo lo que quieras ejecutar al correr el archivo debe quedar dentro del bloque if. Lo que dejes fuera seguirá disponible como funciones importables.

¿Cómo guardar y mostrar resultados?

Una buena práctica es guardar la salida de cada función en una variable como res1 y luego imprimirla con f-strings para darle formato. Así separas el cálculo de la presentación, lo que facilita reutilizar la lógica más adelante.

¿Cómo ejecutar el script desde la terminal?

Más allá de correr el archivo desde Visual Studio Code, puedes lanzarlo desde la línea de comandos. En el minuto [02:30] se muestra el flujo: navegar hasta la carpeta del proyecto, listar archivos con ls y ejecutar con python3 seguido del nombre del archivo.

  • Entra a la carpeta del proyecto, por ejemplo Magic Methods.
  • Verifica con ls que el archivo calculadora.py esté ahí.
  • Ejecuta con python3 calculadora.py.

La terminal mostrará el resultado de cada operación, exactamente como se vería al correrlo desde el editor. Si modificas el archivo, basta con guardar y volver a ejecutar la misma sentencia.

¿Cuándo se ejecuta el código dentro del if __name__ == "__main__"? Solo cuando corres el archivo directamente con python3 archivo.py. Si otro script lo importa con import archivo, ese bloque se ignora y solo quedan disponibles las funciones.

¿Por qué importa esta estructura en proyectos reales?

Cuando tus proyectos crecen y tienes varios archivos .py, separar la lógica reutilizable de la lógica de ejecución evita efectos secundarios. Imagina importar un archivo solo para usar su función de suma y que, al hacerlo, se imprima toda una calculadora en pantalla. Con esta estructura, eso no pasa.

Es también la base para escribir pruebas unitarias, organizar puntos de entrada en aplicaciones más grandes y mantener un código limpio. La convención dunder alrededor de __name__ y __main__ la verás en casi cualquier proyecto profesional de Python.

Ahora te toca a ti. Crea un nuevo script de gestión de empleados con dos funciones: una para agregar empleados y otra para eliminarlos. Usa la estructura if __name__ == "__main__" para invocarlas y comparte en los comentarios cómo organizaste tu código.