Para ello tenemos los módulos, que no son más que un programa el cual incluimos y tenemos a disposición todo su contenido.
Módulos
Como veníamos explicando un módulo no es más que la inclusión de un programa dentro de nuestro código con lo cual accedemos a todo su contenido, un ejemplo palpable de un módulo es el math con el cual ya hemos trabajado incluyéndolo de la siguiente forma cómo podemos ver en la siguiente imagen:
Con esto queda más que claro que es un módulo en Python, ahora que pasa si queremos hacer uno propio, queremos extender la funcionalidad de nuestros programas con módulos propios, pues también es posible, ya que como hemos venido reiterando los módulos son programas.
Para el siguiente ejemplo debemos tener nuestro editor de texto preferido para codificar en Python y haremos nuestro programa de Hello World !, veamos la siguiente imagen:
Como crear un módulo
Hasta ahora nada complejo ni nada desconocido, para poder importar los módulos debemos guardarlo en la ruta adecuada para ello podemos ejecutar la siguientes instrucciones y sabremos donde guardar nuestro programa:
>>> import sys >>> sys.path.append('c:/python')
Con esto ya le decimos a Python que debe buscar el la ruta c:/python
Una vez guardado ahí nuestro modulo podemos pasar a hacer el llamado del mismo.
Ahora hacemos la importación y veamos que obtenemos:
>>> import hello Hello, world!
Con esto obtuvimos nuestra impresión en pantalla como habíamos indicado en el archivo hello.py, pero que pasa si queremos hacer un nuevo import:
>>> import hello >>>
Ahora no hace nada, no imprime ni lanza error, esto es porque al hacer la importación una vez que ya Python tiene el modulo en memoria y no lo vuelve a incluir, en este caso, él porque solo se importa una vez se debe a una optimización implementada en Python, se debe a que si hacemos la inclusión de un módulo y este hace una inclusión de otro módulo que ya habíamos incluido anteriormente, por lo cual no vamos a cargar en memoria lo mismo dos veces.
Por eso es este comportamiento, es como un equivalente al include_once de PHP, claro con sus diferencias cada uno y también porque un módulo no debe estar hecho para que ejecute acciones, sino para dejar herramientas que puedan ser útiles en nuestros programas.
Rescribamos nuestro módulo hello.py, esta vez haremos lo siguiente.
# hello2.py def hello(): print "Hello, world!"
Vemos que el mensaje ya no lo imprimimos directamente si no que lo colocamos dentro de un método llamado hello; ahora sí, hagamos la importación del módulo en nuestro programa con el siguiente código:
>>> import hello2
Una vez cargado el módulo podemos acceder al método que definimos anteriormente y veremos el resultado:
En la imagen vemos el resultado final en él cual pudimos llamar a nuestro método definido dentro del módulo sin ningún inconveniente.