13.04.2017 Views

Python Para Todos

Guia Basica de Programacion eusando Pyton

Guia Basica de Programacion eusando Pyton

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!