Última actualización: 04 de diciembre de 2023

8.2. Paquetes Python

Los paquetes pueden contener módulos y otros paquetes. Son directorios. El único requisito es que contengan un archivo llamado __init__.py. Este archivo puede estar vacío.

8.2.1. Sentencia from

La sentencia from se utiliza en conjunto a la previa sentencia import para importar un módulo.

>>> from utilidades import suma_total

Por ejemplo, cree un directorio llamado tostadas_pipo, que contiene los archivos llamados __init__.py, principal.py (dentro del mismo directorio).

  • Archivo __init__.py, este archivo no tiene ningún contenido.

  • Archivo principal.py incluye el siguiente código:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from utilidades import calculos, impuestos

monto = int(input("Introduzca un monto entero: "))
impuesto = int(input("Introduzca un numero del impuesto: "))
# Llama función definida en el módulo "impuestos"
print(f"El impuesto IVA de {impuesto}%: {impuestos.impuesto_iva(monto, impuesto)}")

suma = int(input("Introduzca un monto entero a sumar: "))
# Llama función definida en el módulo "calculos"
print("La suma total es:", calculos.suma_total(suma))

Seguidamente dentro del directorio tostadas_pipo, cree otro directorio llamado utilidades, dentro de este, cree los siguientes archivos:

  • Archivo __init__.py, este archivo no tiene ningún contenido.

  • Archivo calculos.py incluye el siguiente código:

1
2
3
4
5
6
7
8
""" Módulo para cálculos diversos """


def suma_total(monto=0):
    """Calcula la suma total"""
    calculo_suma = 20
    calculo_suma += monto
    return calculo_suma
  • Archivo impuestos.py incluye el siguiente código:

1
2
3
4
5
6
7
""" Módulo para calcular el impuesto """


def impuesto_iva(monto=0, impuesto=12):
    """Calcula el impuesto del IVA"""
    total = (monto * impuesto) / 100
    return total

Al final tendrá la siguiente estructura del directorios del paquete Python llamado tostadas_pipo, como se describe a continuación:

tostadas_pipo/
├── __init__.py
├── principal.py
└── utilidades/
    ├── calculos.py
    ├── impuestos.py
    └── __init__.py

Entonces realizar importaciones desde una estructura de directorios más completa se realiza de las siguientes formas:

  • Importar todos los módulo el sub-paquete utilidades, ejecutando:

1
2
3
import tostadas_pipo.utilidades
from tostadas_pipo import utilidades
from tostadas_pipo.utilidades import *
  • Importar el módulo calculos.py desde el sub-paquete utilidades, ejecutando:

1
from tostadas_pipo.utilidades import calculos
  • Importar la función impuesto_iva() desde el módulo impuestos.py en el sub-paquete utilidades, ejecutando:

1
from tostadas_pipo.utilidades.impuestos import impuesto_iva

Por ejemplo, cree un módulo llamado calculo_factura_pipo.py, que contiene las importaciones del paquete tostadas_pipo:

  • Archivo calculo_factura_pipo.py incluye el siguiente código:

1
2
3
4
5
6
7
8
9
from tostadas_pipo.utilidades import calculos
from tostadas_pipo.utilidades.impuestos import impuesto_iva

monto = int(input("Introduzca un monto entero: "))
monto_suma = int(input("Introduzca un monto entero a sumar: "))

suma = impuesto_iva(monto) + calculos.suma_total(monto_suma)

print(f"Total a Facturar: {suma} Bs (VES), con IVA 14%.")

Importante

Usted puede descargar el código usado en esta sección, haciendo clic en el siguiente enlace: paquetes.zip.

Truco

Para ejecutar el código incluido en el archivo paquetes.zip debe descomprimirlo, abra una consola de comando, acceda al directorio donde se encuentra el archivo descomprimido, de la siguiente forma:

calculo_factura_pipo.py
tostadas_pipo/
├── __init__.py
├── principal.py
└── utilidades/
    ├── calculos.py
    ├── impuestos.py
    └── __init__.py

Si tiene la estructura de archivo previa, entonces ejecute el siguiente comando:

$ python calculo_factura_pipo.py
$ python tostadas_pipo/principal.py

Ver también

Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.


¿Cómo puedo ayudar?

¡Mi soporte está aquí para ayudar!

Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.

La hora aquí es actualmente 7:35 PM GMT-4.

Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Contrata mi increíble soporte profesional