Introducció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.
Traducción del artículo Bert Carremans : ¿Qué hay en un __name__ (de Python)?
0 comentarios