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.pyque 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 defmainmyFunction. 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.pyse ve así:

import nameScript as ns

ns.myFunction()

Obtenemos dos alcances: importingScriptnameScript.

En importingScript.py, el valor de la variable __name__se establece en __main__. Al importar nameScript, Python comienza a buscar el archivo agregándolo  .pyal 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)?

Compartir:
Categorías: Programación

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.