Es posible que hayas visto esta línea de código si __name__=="__main__": mucho en los scripts de Python, sin saber cuál es su propósito real. No te preocupes porque en este breve blog discutiremos esto
Cuando ejecuta directamente un programa o script, Python asigna automáticamente "main" a la variable especial name. Básicamente, esto se hace para indicar que el archivo es el script "principal" aquí y se ejecuta directamente en lugar de importarse a otro.
Para entender esto, cree un nuevo script de Python, digamos que asígnele el nombre "ejemplo.py" y escriba:
print("Name of Script: ", __name__)
Ejecute esto y verá el resultado Nombre del script: __main__. Esto se debe simplemente a que el archivo se ejecuta directamente.
Ahora, cree otro archivo de secuencia de comandos de Python e importe example.py a este archivo. Ejecútelo y verá un resultado diferente que dice Nombre del script: ejemplo. Esto se debe simplemente a que ahora, en lugar de ejecutarlo directamente, estamos importando el script y ejecutándolo indirectamente. Por lo tanto, Python ahora muestra el nombre real del archivo.
Hagamos algunos cambios en nuestro archivo de ejemplo, para que podamos entenderlo aún mejor.
def s_name(): print("Name of Script: ", __name__) s_name() def greet(): print("Hello! How are you doing?") if __name__=="__main__": greet()
Ahora, si ejecuta esto directamente, todo se ejecutará perfectamente, pero si ejecuta el otro archivo donde está importando el script example.py, notará que la llamada a la función de saludo no se ejecutó. ¿Porqué es eso?
Esto se debe al condicional if. Lo que hace el condicional es comprobar si el archivo se está ejecutando directamente o no. Si se ejecuta directamente, main se asignará a la variable especial name, lo que hará que esta condición sea verdadera y todo lo que esté dentro de la condición se ejecutará como de costumbre.
Pero, por otro lado, si lo importas a otro archivo y lo ejecutas desde allí indirectamente, entonces la declaración de condición no será verdadera y todo lo que se haya colocado dentro del condicional no se ejecutará.
Este es el significado de esta declaración condicional. Evita que el intérprete de Python ejecute automáticamente líneas de código innecesarias cuando importamos un script como módulo.
Sin embargo, podemos llamar a estas funciones incluso cuando importamos un script como módulo. Por ejemplo:
import example example.greet()
De esta manera podemos llamar perfectamente a cualquier función del módulo importado incluso cuando no se cumpla el condicional.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3