Índice del contenido[Esconder][Espectáculo]
Esta conferencia abarcará los módulos y paquetes en Python.
Son una forma de organizar su código en forma de archivos y son realmente importantes si tiene la intención de crear aplicaciones web con Python.
Módulos
Un módulo en Python es básicamente un archivo con algún código de Python que usamos para organizar nuestro código en archivos. Piense en ello como secciones en un supermercado. Cuando vas a un supermercado hay diferentes secciones de frutas, verduras, productos de limpieza, etc. No ves una sección con todos los productos.
Es el mismo concepto en programación. En lugar de escribir todo nuestro código con todas las funciones y clases en main.py, dividimos nuestro código en varios archivos. Cada archivo se denomina módulo. Con esto, no solo nuestro código está mejor organizado y estructurado, sino que también tenemos la capacidad de reutilizar nuestro código. Veámoslo a través de un ejemplo.
Definamos dos funciones para convertir peso de libras a kilogramos y viceversa.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Ahora, podemos tomar estas dos funciones y ponerlas en un módulo separado llamado "convertidores", y luego se puede importar a cualquier programa que necesite estas funciones de conversión. Déjame mostrarte cómo hacer esto.
Abramos nuestro panel de proyectos y hagamos clic derecho en el proyecto y agreguemos un nuevo archivo. Vamos a llamar a este archivo "Converters.py".
Ahora copie el código del archivo predeterminado y péguelo en "Converters.py".
Con esto, hemos limpiado nuestro módulo principal y no está inflado con diferentes funciones. A medida que escribimos más funciones con clases, las ponemos en sus módulos correspondientes. Un módulo debe contener todas las funciones y clases relacionadas. Ahora, queremos importar el módulo de convertidores a nuestro módulo de aplicación. Para ello escribe import converters
en la parte superior sin la extensión “.py”.
Podemos acceder a los miembros de un módulo usando un operador de punto similar a los métodos.
Convirtamos 70 kg en libras:
También hay otra sintaxis para importar módulos. En lugar de importar todo el módulo, podemos importar funciones específicas de ese módulo. podemos escribir from Converters import
y presiona “control + espacio para mostrar la lista de funciones disponibles. Con esto, podemos llamar directamente a esta función.
El Ejercicio
Aquí está tu ejercicio.
Esto está relacionado con un ejercicio de la conferencia donde discutimos “para bucles” donde escribimos un programa para encontrar el número más grande de una lista
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Este código actualmente no tiene organización. No tenemos funciones ni módulos y el programa está escrito en un solo archivo. Eso está bien para programas pequeños, pero a medida que sus programas crecen, necesita organizar adecuadamente su código en clases y módulos. Por lo tanto, como parte de este ejercicio, quiero que escribas una función, llámala find_max
. Esta función debería tomar una lista y devolver el número más grande de esa lista. Después de eso, continúe y coloque esta función en un módulo separado, extráigala de aquí y colóquela en un módulo llamado utils
. Este módulo debe contener un montón de funciones de utilidad. Importar el utils
módulo en el módulo actual y llamar find_max
función. Finalmente, obtén el resultado e imprímelo en la terminal.
Este ejercicio es un poco desafiante pero fácilmente factible.
Solución
Comienza definiendo una función find_max
y agregue un parámetro llamado números. Dentro de esta función, escribe el algoritmo para encontrar el número más grande en una lista.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Guarde este código en un archivo "utils.py" como un módulo.
Volviendo a nuestro programa principal, simplemente importe el módulo por cualquiera de las dos sintaxis y simplemente ejecute la lógica.
Una cosa, necesito llamar su atención es el socavado max
. La razón de eso es la max
es una función integrada en Python y la estamos redefiniendo. Así que esta es una advertencia del Compilador de Python que ya no podemos usar max como su función integrada.
Módulos incorporados en Python
Python viene con una biblioteca estándar que contiene varios módulos para tareas comunes, como enviar correos electrónicos, trabajar con fecha y hora, generar valores aleatorios y contraseñas, etc. Ya hay tantos módulos integrados en Python, lo que significa que ya hay muchas funciones que podemos reutilizar. Puedes encontrar estos módulos esta página.
Buceo y Alojamiento
Los paquetes son básicamente otra forma de organizar nuestro código sobre los módulos. Un proyecto real puede contener cientos o incluso miles de módulos y, con el tiempo, nuestro directorio se llenará de tantos archivos. Por lo tanto, un mejor enfoque es organizar los módulos relacionados dentro de un paquete, lo que hace que el paquete sea un contenedor para varios módulos.
Se agrega un nuevo directorio al proyecto y todos los módulos relacionados se agregan a ese directorio. Como ejemplo, piense en un centro comercial. Hay diferentes secciones de ropa para hombres, mujeres y niños en un centro comercial que son como paquetes. Cada sección tiene diferentes áreas para diferentes tipos de productos como zapatos, camisetas y chaquetas. Piense en estos como módulos.
Veamos, cómo crear y usar paquetes en Python.
Primero, agregue un nuevo directorio desde el panel del proyecto. Llamémoslo “comercio electrónico”. Este paquete contendrá todos los módulos relacionados con una aplicación de comercio electrónico.
Todavía es un directorio vacío y para convertirlo en un paquete, necesitamos crear un archivo especial en él. Agregue un nuevo archivo python en este directorio y nombre ese archivo "__init__". Es una convención especial en Python y cuando el intérprete de Python ve un archivo con este nombre en un directorio, trata este directorio como un paquete.
También tenemos un método alternativo y conciso para crear un paquete. Simplemente haga clic con el botón derecho en el panel del proyecto y cree un paquete de Python de la lista. Llámalo "comercio electrónico" y listo. Automáticamente creará un directorio con un archivo de Python llamado "__init__".
Ahora, creemos un módulo en el paquete y asígnele el nombre "envío". En este módulo, vamos a crear una función simple para calcular los costos de envío.
def calc_shipping():
print("calc_shipping")
Para acceder a esta función en nuestro módulo principal, tenemos que acceder a través del paquete de comercio electrónico. Una vez más tenemos dos métodos para importar este módulo.
En el primer método, podemos importar todo el módulo y luego llamar a una función de forma independiente como esta:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
Sin embargo, con este enfoque, llamar a una de las funciones de este módulo requiere prefijarlo con eCommerce.shipping.
Eso es muy detallado. Entonces, cuando trabajamos con paquetes, a menudo usamos el segundo enfoque y usamos el from
.
from eCommerce.shipping import calc_shipping
calc_shipping()
Si tiene varias funciones en un módulo, puede importarlas todas en una sola línea usando comas entre ellas. Digamos que hay otra función para calcular impuestos en nuestro módulo de envío. Eso será importado así:
from eCommerce.shipping import calc_shipping, calc_tax
También puede importar módulos individuales y dejar que las funciones se llamen en una etapa posterior del programa. Importemos el envío del módulo y luego usemos un operador de punto para llamar a la función calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
¡Envolver!
Los paquetes y módulos son extremadamente importantes en Python. Especialmente, cuando quieres trabajar con un framework como Django que se usa para construir aplicaciones web con Pitón. Analizaremos Django durante otro curso de Python.
Esta fue la última conferencia convencional de esta serie. La próxima lección se desviará de nuestro formato habitual y aprenderemos algunos casos de uso importantes en Python. Eso marcará el final de esta serie y pasaremos a nuestra próxima serie de Python. Estén atentos para eso.
Deje un comentario