La función principal es como el punto de entrada de un programa. Sin embargo, el intérprete de Python ejecuta el código directamente desde la primera línea. La ejecución del código comienza desde la línea de inicio y va línea por línea. No importa dónde esté presente la función principal o esté presente o no.
Dado que no hay ninguna main()
función en Python, cuando se le da al intérprete el comando para ejecutar un programa de Python, se debe ejecutar el código que está en la sangría de nivel 0. Sin embargo, antes de hacerlo, definirá algunas variables especiales. __name__
es una de esas variables especiales. Si el archivo fuente se ejecuta como el programa principal, el intérprete establece la __name__
variable para que tenga un valor __main__
. Si este archivo se importa desde otro módulo, __name__
se establecerá con el nombre del módulo. __name__
es una variable integrada que se evalúa como el nombre del módulo actual.
Ejemplo:
# Python program to demonstrate # main() function print("Hello") # Defining main function def main(): print("hey there") # Using the special variable # __name__ if __name__=="__main__": main()
Producción:
Hello hey there
Cuando se ejecuta el programa anterior, el intérprete declara el valor inicial del nombre como «principal». Cuando el intérprete llega a la declaración if, verifica el valor de name y cuando el valor de if es verdadero, ejecuta la función principal; de lo contrario, la función principal no se ejecuta.
Función principal como módulo
Ahora, cuando importamos un script de Python como módulo, la __name__
variable obtiene el mismo valor que el nombre del script de Python importado.
Ejemplo: Consideremos que hay dos archivos (Archivo1.py y Archivo2.py). El archivo 1 es el siguiente.
# File1.py print("File1 __name__ = %s" %__name__) if __name__ == "__main__": print("File1 is being run directly") else: print("File1 is being imported")
Producción:
File1 __name__ = __main__ File1 is being run directly
Ahora, cuando File1.py se importa a File2.py, el valor de __name__ cambia.
# File2.py import File1 print("File2 __name__ = %s" %__name__) if __name__ == "__main__": print("File2 is being run directly") else: print("File2 is being imported")
Producción:
File1 __name__ = File1 File1 is being imported File2 __name__ = __main__ File2 is being run directly
Como se vio anteriormente, cuando File1.py se ejecuta directamente, el intérprete establece la __name__
variable como __main__
y cuando se ejecuta a través de File2.py al importar, la variable __name__ se establece como el nombre de la secuencia de comandos de python, es decir, File1. Por lo tanto, se puede decir que si __name__ == “__main__” es la parte del programa que se ejecuta cuando el script se ejecuta desde la línea de comandos usando un comando como Python File1.py.
Publicación traducida automáticamente
Artículo escrito por AyushAnandMallik y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA