En Python, if __name__ == "__main__":
es una construcción comúnmente usada, pero su propósito y funcionamiento puede ser confuso para los programadores que son nuevos en el lenguaje. __main__
es una variable especial incorporada en Python que representa el nombre del módulo actual en el que se encuentra el código.
Cuando ejecutamos un script en Python directamente desde la línea de comando, por ejemplo python myscript.py
, la variable __name__
se establece en "__main__"
. Esto indica que el script se está ejecutando como el programa principal. En este caso, cualquier código que se encuentre dentro de un bloque if __name__ == "__main__":
se ejecutará.
Pero si el mismo archivo de código, myscript.py
, se importa en otro script de Python, la variable __name__
se establece en "myscript"
, que es el nombre del archivo de Python sin la extensión .py
. En este caso, el código dentro de if __name__ == "__main__":
no se ejecutará.
Este mecanismo es extremadamente útil porque nos permite controlar qué partes de nuestro código se ejecutan dependiendo de si el script se está ejecutando por sí solo o se está importando en otro script.
Aquí tienes un ejemplo práctico:
# myscript.py
def main_function():
print("Esta función se ejecuta siempre.")
if __name__ == "__main__":
print("Este mensaje solo se muestra si el script se ejecuta directamente.")
Si ejecutamos myscript.py
, ambos mensajes se imprimirán. Pero si importamos myscript.py
en otro script, solo la función main_function
estará disponible y el mensaje en el bloque if __name__ == "__main__":
no se imprimirá.
En resumen, el propósito de __main__
en Python es verificar si un script de Python se está ejecutando como el programa principal (es decir, se invocó desde la línea de comandos) o si se importa como un módulo en otro script. Esta característica facilita la reutilización del código y la organización del mismo de una forma más fácil de entender y mantener.