Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Python</strong> para todos<br />
Aunque se considera una mala práctica, también es posible importar<br />
todos los nombres del módulo al espacio de nombres actual usando el<br />
caracter *:<br />
from time import *<br />
Ahora bien, recordareis que a la hora de crear nuestro primer módulo<br />
insistí en que lo guardarais en el mismo directorio en el que se encontraba<br />
el programa que lo importaba. Entonces, ¿cómo podemos<br />
importar los módulos os, sys o time si no se encuentran los archivos<br />
os.py, sys.py y time.py en el mismo directorio?<br />
A la hora de importar un módulo <strong>Python</strong> recorre todos los directorios<br />
indicados en la variable de entorno PYTHONPATH en busca de un archivo<br />
con el nombre adecuado. El valor de la variable PYTHONPATH se puede<br />
consultar desde <strong>Python</strong> mediante sys.path<br />
>>> import sys<br />
>>> sys.path<br />
De esta forma para que nuestro módulo estuviera disponible para<br />
todos los programas del sistema bastaría con que lo copiáramos a uno<br />
de los directorios indicados en PYTHONPATH.<br />
En el caso de que <strong>Python</strong> no encontrara ningún módulo con el nombre<br />
especificado, se lanzaría una excepción de tipo ImportError.<br />
Por último es interesante comentar que en <strong>Python</strong> los módulos<br />
también son objetos; de tipo module en concreto. Por supuesto esto<br />
significa que pueden tener atributos y métodos. Uno de sus atributos,<br />
__name__, se utiliza a menudo para incluir código ejecutable en un<br />
módulo pero que este sólo se ejecute si se llama al módulo como programa,<br />
y no al importarlo. <strong>Para</strong> lograr esto basta saber que cuando se<br />
ejecuta el módulo directamente __name__ tiene como valor “__main__”,<br />
mientras que cuando se importa, el valor de __name__ es el nombre del<br />
módulo:<br />
print “Se muestra siempre”<br />
if __name__ == “__main__”:<br />
print “Se muestra si no es importacion”<br />
74