English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Python

Control de Flujo de Python

Funciones en Python

Tipos de datos en Python

Operaciones de Archivo de Python

Objetos y Clases de Python

Fecha y Hora de Python

Conocimientos Avanzados de Python

Manual de Referencia de Python

Función main() en Python

En este tutorial, aprenderemos a ejecutar dinámicamente el programa de Python usando la propiedad __name__ en diferentes contextos.

¿Qué es la función main() en Python?

Algunos lenguajes de programación tienen una función especial llamada main(), que es el punto de ejecución del archivo del programa. Sin embargo, el intérprete de Python ejecuta cada línea del archivo desde la parte superior en orden y sin función main() explícita.

Python proporciona otras convenciones para definir el punto de ejecución. Una de ellas es usar la función main() del archivo python y la propiedad __name__.

¿Qué es __name__ en Python?

__name__ es una variable especial incorporada en Python que muestra el nombre del módulo actual.

dependiendo de la ubicación en la que se ejecute el archivo de Python, tiene diferentes valores. Veamos un ejemplo.

ejecutar un archivo de Python como script

supongamos que tenemos un archivohelloworld.pyel archivo de Python, con el siguiente contenido:

print(__name__)

si ejecutamos desde la línea de comandoshelloworld.py,entonces se ejecutará como script de Python. Podemos usar el siguiente comando para ejecutar programas de Python:

python helloworld.py
def foo():
    str="__main__"
    print(str);
if __name__ == "__main__":
    foo()

Cuando ejecutamos el programa como script, el valor de la variable __name__ se establece a__main__. Por lo tanto, la salida del siguiente programa será:

__main__

Ejecutar archivos Python como módulo

También podemos ejecutar el archivo Python como módulo. Para hacerlo, debemos importar este archivo en otro programa Python. Vamos a ver un ejemplo.

Supongamos que en el mismo directorio que el archivo heloworld.py hay un archivo llamadomain.pyEl archivo Python. Tiene el siguiente contenido:

import helloworld

La salida al ejecutar este archivo será:

helloworld

Aquí, podemos ver que también se ejecuta todo el código del archivo módulo al importar el módulo.

Pero, podemos ver que, en lugar de mostrar __main__, el programa mostrará el nombre del módulo, es decir helloworld.

Esto se debe a que, cuando se ejecuta el archivo Python como módulo, el nombre del módulo se asigna a la variable __name__.

Uso de la condición if con __name__

Ahora que ya hemos entendido cómo se asigna el valor a la variable __name__, podemos usar la cláusula de condición if en diferentes contextos para ejecutar el mismo archivo Python de diferentes maneras.

Vamos a ver un ejemplo.

Supongamos quehelloworld.pyEl contenido del archivo se cambia al siguiente:

def main():
    print("Hello World")
if __name__ == "__main__":
    main()

Ahora, cuando lo ejecutamos como script desde la línea de comandos, la salida será:

Hello World

Pero, cuando lo importamosmain.pyCuando el archivo se ejecuta como módulo, no se muestra ningún output porque la función main() no se llama.

Aquí, creamos una función main() personalizada en el archivo helloworld.py. Esta función solo se ejecuta cuando el programa se ejecuta como script independiente y no como módulo importado.

Este es el método estándar para definir explícitamente la función main() en Python. Es uno de los casos de uso más populares de la variable __name__ del archivo Python.