Cada módulo tiene un nombre y sus sentencias pueden encontrar el nombre de su módulo. Esto es especialmente útil en una situación en particular. Cuando un módulo es importado por primera vez, se ejecuta el módulo principal de ése modulo. ¿Qué pasa si queremos ejecutar el bloque sólo si el programa es usado por él mismo y no cuando es importado desde otro módulo? Esto se puede lograr usando el atributo __name__del módulo.

Usando el módulo __name__


In [ ]:
#!/usr/bin/python
# Filename: using_name.py

if __name__ == '__main__':
	print 'Éste programa está siendo ejecutado el mismo'
else:
	print 'Estoy siendo importado desde otro módulo'

Salida

$ python using_name.py
Éste programa está siendo ejecutado el mismo

$ python
>>> import using_name
Estoy siendo importado desde otro módulo
>>>

Cómo funciona

Cáda módulo Python tiene su variable __name__ definido, si su valor es '__main__', implica que el módulo está siendo ejecutado de forma independiente por el usuario, y podemos tomar las acciones correspondientes.

Créditos

Documento original: Using a module's name.

Traducción: Espartaco Palma (@esparta)

Este obra está bajo una licencia Licencia Creative Commons Atribución-NoComercial-CompartirIgual 2.0.