Función principal de Python

La función principal de Python se ejecuta solo cuando se ejecuta como un programa de Python. Como sabes, también podemos importar un programa de Python como un módulo, en ese caso, el método principal de Python no se debe ejecutar.

La función principal de Python

La función principal es el punto de entrada de cualquier programa. Pero el intérprete de Python ejecuta el código del archivo fuente de manera secuencial y no llama a ningún método si no forma parte del código. Pero si es parte directa del código, se ejecutará cuando el archivo se importe como un módulo. Por eso, existe una técnica especial para definir el método principal en un programa de Python, de modo que se ejecute solo cuando el programa se ejecute directamente y no se ejecute cuando se importe como un módulo. Veamos cómo definir la función principal de Python en un programa sencillo. python_main_function.py

print("Hello")

print("__name__ value: ", __name__)


def main():
    print("python main function")


if __name__ == '__main__':
    main()
  • Cuando se ejecuta un programa de Python, el intérprete de Python comienza a ejecutar el código dentro de él. También establece algunos valores de variables implícitas, uno de ellos es __name__, cuyo valor se establece como __main__.

  • Para la función principal de Python, debemos definir una función y luego utilizar la condición if __name__ == '__main__' para ejecutar esta función.

  • Si el archivo fuente de Python se importa como módulo, el intérprete de Python establece el valor de __name__ en el nombre del módulo, por lo que la condición if devolverá falso y el método principal no se ejecutará.

  • Python nos proporciona flexibilidad para poner cualquier nombre al método principal, sin embargo, es una buena práctica nombrarlo como el método main(). El siguiente código es perfectamente válido, aunque no se recomienda.

    def main1():
        print("función principal de Python")
    
    
    if __name__ == '__main__':
        main1()
    

A continuación, se muestra la salida cuando se ejecuta el archivo fuente python_main_function.py.

Función principal de Python como módulo

Ahora usemos el archivo fuente de Python anterior como un módulo e impórtelo en otro programa. python_import.py

import python_main_function

print("Done")

Ahora, cuando se ejecuta el programa anterior, se produce la siguiente salida.

Hello
__name__ value:  python_main_function
Done

Observe que las dos primeras líneas se imprimen desde el archivo fuente python_main_function.py. Note que el valor de __name__ es diferente y, por lo tanto, no se ejecuta el método principal. Observa que las declaraciones del programa de Python se ejecutan línea por línea, así que es importante definir primero el método main() antes de la condición if para ejecutar el método principal. De lo contrario, obtendrás un error como NameError: name 'main' is not defined. Eso es todo sobre la función principal de Python. Referencia: Documentación de Python

Source:
https://www.digitalocean.com/community/tutorials/python-main-function