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:
from utilidades import impuestos
from utilidades import calculos

monto = int(input("Introduzca un monto entero: "))
# Llama función definida en el módulo "impuestos"
print "El impuesto IVA de 12%:", impuestos.impuesto_iva12(monto)

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:

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

def impuesto_iva12(monto=0):
    """ Calcula el impuesto del IVA de 12 % """
    total = ((monto * 12)/100)
    return total


def impuesto_iva14(monto=0):
    """ Calcula el impuesto del IVA de 14 % """
    total = ((monto * 14)/100)

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 mas completa se realiza de las siguientes formas:

  • Importar todos los módulo el sub-paquete utilidades, ejecutando:
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:
from tostadas_pipo.utilidades import calculos
  • Importar la función impuesto_iva14() desde el módulo impuestos.py en el sub-paquete utilidades, ejecutando:
from tostadas_pipo.utilidades.impuestos import impuesto_iva14

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:
from tostadas_pipo.utilidades import calculos
from tostadas_pipo.utilidades.impuestos import impuesto_iva14

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

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

print "Total a Facturar: {0} BsS, con IVA 14%.".format(suma) 

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.