Variable __name__ en Python
@programacionIntroducción a la variable __name__ y sus usos en Python
Lo más probable es que haya encontrado una variable __name__
mientras trabajaba con el código de Python. Se parece a esto:
if __name__ == '__main__': main()
Veamos un ejemplo del uso de esta variable al crear módulos en Python.
¿Por qué usar la variable __name__?
Una variable __name__
(dos guiones bajos antes y después) es una variable especial en Python que toma un valor dependiendo de cómo se ejecute el script que contiene.
A veces, las características de algunos escenarios pueden resultarle útiles en otros . En Python, puede importar este script como un módulo para otro script.
Con esta variable, puede decidir si ejecutar el script o importar las funciones definidas en el script.
¿Qué valores puede contener la variable __name__?
Cuando se ejecuta el script, el valor de la variable __name__
es __main__
. Cuando importe el código del script, contendrá el nombre del script.
Consideremos dos casos de uso.
Opción 1 - Ejecutar el script
Digamos que escribimos un script nameScript.py
que se ve así:
def myFunction(): print 'The value of __name__ is ' + __name__ def main(): myFunction() if __name__ == '__main__': main()
Ejecutar nameScript.py seguirá el proceso a continuación.
Antes de que se ejecute el resto del código, el valor de la variable __name__
se establece en __main__. Después de eso, se ejecutan las declaraciones defmain
y myFunction
. Dado que se establece en verdadero, se llama a la función principal. A su vez, se llama myFunction. El resultado es un valor __main__
.
Opción 2: importar un script a otro script
Para usar myFunction en otro script, por ejemplo importingScript.py
, importe nameScript.py
como un módulo.
El código importingScript.py
se ve así:
import nameScript as ns ns.myFunction()
Obtenemos dos alcances: importingScript
y nameScript
.
En importingScript.py, el valor de la variable __name__
se establece en __main__. Al importar nameScript, Python comienza a buscar el archivo agregándolo .py
al nombre del módulo y luego ejecuta el código del archivo importado.
En este caso, el valor se establece en nameScript. Las instrucciones def para main y myFunction se activan nuevamente. Sin embargo, esta vez se establece en falso y no se llama a la función principal.
En importingScript.py llamamos myFunction que genera nameScript. El NameScript se da a conocer a myFunction cuando se define la función.
Cuando se escribe __name__
en importingScript , obtenemos __main__
, ya que Python usa el valor conocido en el ámbito de importingScript.
Conclusión
Vimos las opciones para usar una variable __name__
al escribir módulos. Estos módulos también se pueden ejecutar de forma independiente sabiendo cómo cambian los valores de estas variables dependiendo de dónde se produzcan.
Fuente:
https://elsolitario.org/post/variable__name__en-python/