Introducción
Python es uno de los lenguajes de programación más utilizados en todo el mundo. Módulos son una parte fundamental del código de Python. Un módulo es simplemente un .py archivo en el contexto de Python 3. Esto significa que puedes referirte a cualquier archivo de Python como un módulo.
Es posible obtener estos módulos a través de la biblioteca predefinida. Puedes echar un vistazo a la Biblioteca Estándar de Python para obtener más información. Estos se instalan en tu sistema al instalar Python. En otras situaciones, puedes instalar estos módulos utilizando el gestor de paquetes de Python pip. Pero ¿y si quieres crear un módulo personalizado? Si ese es el caso, te alegrará saber que puedes crear tus propios módulos en Python.
En esta guía detallada, describiremos los pasos que debes seguir para escribir e importar módulos en Python 3.
Requisitos previos
Antes de comenzar, deberás asegurarte de tener instalado Python 3 y un entorno de programación configurado. Puedes seguir nuestro tutorial sobre cómo instalar Python 3 y configurar un entorno de programación local en Ubuntu 16.04 para completar la instalación en caso de que no la tengas lista.
¿Cómo escribir un módulo?
Comencemos con la escritura de un módulo. Escribirías un módulo tal como redactarías cualquier otro archivo de Python. Un módulo típico consta de las definiciones de las funciones, clases y variables. Posteriormente, puedes usar el módulo para aplicarlo a otros programas de Python.
Para ayudarte a entender, consideremos un ejemplo. Digamos que queremos crear un archivo llamado hello.py. Más adelante también importaremos esto en otro archivo. El primer paso en el proceso es crear una función. Esta función servirá para imprimir Hello, World! de esta manera:
|
1 2 3 |
# Definir una función def world(): print("Hello, World!") |
En este punto, ejecutar el comando python hello.py no te dará ningún resultado. Esto se debe a que aún no hemos dado ninguna instrucción al programa. Para que funcione, necesitamos importar el módulo.
¿Cómo importar un módulo?
Para importar tu módulo para convertirlo en una función, necesitas crear un segundo archivo en el mismo directorio. Llamaremos a este nuevo archivo main_program.py. La razón por la que ambos archivos deben estar en el mismo directorio es que necesitamos guiar al programa sobre dónde encontrar el módulo. Esto es aplicable a cualquier módulo nuevo y personalizado que no esté integrado:
|
1 2 3 4 5 |
# Importar el módulo hello import hello # Llamar a la función hello.world() |
Usamos la notación de puntos para el nombre del módulo para llamar a la función. Otra forma de hacer esto es usar el método from...import . Aquí, llamaremos a la función como world() importando el módulo como from hello import world. Finalmente, puedes ejecutar el comando:
|
1 |
python main_program.py |
El comando te mostrará la siguiente salida:
|
1 2 |
Salida: Hello, World! |
Agregar variables a un módulo
A continuación, veremos cómo agregar variables al módulo colocando definiciones en él:
|
1 2 3 4 5 6 |
# Definir una función def world(): print("Hello, World!") # Definir una variable shark = "Sammy" |
Posteriormente, llamarás a la variable en la función print() . La llamaremos dentro del archivo main_program.py archivo:
|
1 2 3 4 5 6 7 |
# Importar el módulo hello import hello # Llamar a la función hello.world() # Imprimir variable print(hello.shark) |
Al ejecutar el programa se mostrará esta salida:
|
1 2 3 |
Salida: Hello, World! Sammy |
Agregar una clase a un módulo
Por último, veremos cómo puedes definir una clase en tu archivo para el módulo. Continuando con nuestro ejemplo, crearemos una nueva clase llamada Octopus en el archivo hello.py. También le asignaremos los atributos de name y color. Luego, agregaremos una función para que se pueda imprimir:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Definir una función def world(): print("¡Hola, mundo!") # Definir una variable shark = "Sammy" # Definir una clase class Octopus: def __init__(self, name, color): self.color = color self.name = name def tell_me_about_the_octopus(self): print("Este pulpo es " + self.color + ".") print(self.name + " es el nombre del pulpo.") |
A continuación, debes agregar la clase cerca del final del main_program.py archivo:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# Importar el módulo hello import hello # Llamar a la función hello.world() # Imprimir la variable print(hello.shark) # Llamar a la clase jesse = hello.Octopus("Jesse", "orange") jesse.tell_me_about_the_octopus() |
Puedes llamar a la clase con el comando hello.Octopus(). Te mostrará las funciones y atributos de la clase Octopus en el espacio de nombres del archivo. Como tal, puedes escribir jesse.tell_me_about_the_octopus() en la última línea sin invocar hello. También es posible llamar a un atributo de forma individual de la clase sin usar hello. Por ejemplo, simplemente puedes ejecutar jesse.color. Cuando ejecutes el programa, mostrará la siguiente salida:
|
1 2 3 4 5 |
Salida: Hola, Mundo! Sammy Este pulpo es naranja. Jesse es el nombre'del pulpo. |
Implementación de código con módulos
Donde puedes usar módulos para especificar definiciones, también puedes usarlos para implementar código. Digamos que queremos implementar la función world(). Reescribiremos nuestro archivo inicial hello.py por completo:
|
1 2 3 4 5 6 |
# Definir una función def world(): print("¡Hola, mundo!") # Llamar a la función dentro del módulo world() |
Desde el archivo main_program.py eliminaremos todo excepto la declaración de importación, dejando lo siguiente:
|
1 2 |
# Importar el módulo hello import hello |
Ejecutar el archivo del programa principal te dará esta salida ya que el programa implementa y ejecuta la función world() :
|
1 2 |
Salida: Hola, Mundo! |
¿Cómo acceder a un módulo desde otro directorio?
Ahora que sabes cómo crear y modificar módulos, necesitas saber cómo acceder a ellos desde otro directorio. Esto es útil cuando necesitas usar un módulo determinado en otro proyecto. Hay dos formas de hacerlo que explicaremos a continuación.
-
Anexar rutas
El primer método consiste en activar la ruta del módulo utilizando los archivos de programación que ya están usando el módulo. Desafortunadamente, hacer esto no significa que el módulo estará disponible en todo el sistema. Por lo tanto, solo se considera una solución temporal. A menudo se emplea durante la fase de desarrollo del proyecto.
Puedes comenzar el proceso de anexión importando el módulo sys y otros módulos importantes que necesites usar. Los importaremos al archivo del programa principal. Puedes encontrar el módulo sys en la biblioteca estándar de Python. Lo necesitas porque contiene los parámetros básicos y las funciones específicas de tu sistema.
Considera nuestro ejemplo anterior una vez más. Digamos que el archivo hello.py está en la ruta /usr/sammy/ y el archivo main_program.py está en otro directorio. Primero importaremos el módulo hello en el archivo main_program.py utilizando primero el módulo sys. A continuación, añadiremos /usr/sammy/ a la ruta:
|
1 2 3 4 5 6 |
import sys sys.path.append('/usr/sammy/') import hello ... |
Si configuras la ruta correctamente, el archivo main_program.py el archivo se ejecutará fácilmente sin errores. Recibirás el mismo resultado que cuando ambos archivos estaban en el mismo directorio.
-
Ruta de Python
La otra opción que puedes tomar es la ruta de Python. Aquí, agregarías el módulo en sí a una ruta en la que Python busca módulos y paquetes. Como probablemente puedas inferir, esto hace que el módulo esté disponible en todo el sistema, lo que lo convierte en una solución permanente viable.
Para hacer esto, necesitas averiguar dónde está buscando módulos Python. Tendrás que ejecutar el intérprete de Python desde el entorno de programación, que se ve así:
|
1 |
python |
El siguiente paso es importar el sys módulo:
|
1 |
>>> import sys |
A continuación, imprime la ruta del sistema:
|
1 |
>>> print(sys.path) |
Ahora, verás una ruta del sistema como resultado. Habrá al menos una. Sin embargo, puede haber varias en un entorno de programación. En la lista, localiza el entorno que estás utilizando. Ten en cuenta que es posible que también quieras agregar el módulo a la ruta principal de Python del sistema. Se verá así:
|
1 2 |
Salida: '/usr/sammy/my_env/lib/python3.5/site-packages' |
Finalmente, mueve el hello.py archivo a este directorio e importa el módulo de la siguiente manera:
|
1 2 |
import hello ... |
Tu intento habrá sido exitoso si el programa ejecuta el archivo sin producir ningún error. Como resultado de este proceso, podrás acceder al módulo desde cualquier directorio de tu sistema.
Conclusión
El objetivo de este tutorial era ayudarte a familiarizarte con la escritura de módulos de Python. Es muy similar a cómo escribirías cualquier archivo .py de Python. Primero hablamos sobre qué es realmente un módulo de Python y sus características asociadas. Luego, descubrimos cómo aplicar estas definiciones en otros archivos de programación en Python. Finalmente, desciframos los detalles de la accesibilidad de los módulos. Ahora ya sabes cómo escribir módulos en Python 3, así como acceder a ellos.
Para seguir ampliando tus conocimientos sobre el lenguaje de programación Python, consulta nuestro blog para obtener más recursos:
- Python 3: Una guía sobre la conversión de tipos de datos
- Bucles en Python 3: Uso de las instrucciones Break, Continue y Pass
- Uso de formateadores de cadenas en Python 3
¡Feliz programación!
Comentarios
Aún no hay comentarios. Sea el primero.