__name__ (una variable especial) en Python

Dado que no hay una función main() 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 variable __name__ para que tenga un valor «__main__». Si este archivo se importa desde otro módulo, __name__ se establecerá en el nombre del módulo.
__name__ es una variable integrada que se evalúa como el nombre del módulo actual. Por lo tanto, se puede usar para verificar si el script actual se ejecuta solo o se importa a otro lugar combinándolo con la instrucción if, como se muestra a continuación.

Considere dos archivos separados File1 y File2.

# File1.py 
  
print ("File1 __name__ = %s" %__name__) 
  
if __name__ == "__main__": 
    print ("File1 is being run directly")
else: 
    print ("File1 is being imported")
# File2.py 
  
import File1 
  
print ("File2 __name__ = %s" %__name__) 
  
if __name__ == "__main__": 
    print ("File2 is being run directly")
else: 
    print ("File2 is being imported")
Now the interpreter is given the command to run File1.py.
python File1.py
Output :
File1 __name__ = __main__
File1 is being run directly


And then File2.py is run.
python File2.py
Output :
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 variable __name__ como __main__ y cuando se ejecuta a través de File2.py mediante la importación, 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 GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *