Saltar al contenido principal
eLearner.app
Módulo 7 · Lección 4 de 428/36 en el curso~10 min
Lecciones del módulo (4/4)

import y módulos

Un módulo en Python es simplemente un archivo .py. Para usar el código de un módulo desde otro archivo, lo importas (import).

Formas de import

Python
# 1) import del módulo completo
import math
math.sqrt(16)        # 4.0
math.pi              # 3.14159...

# 2) import de nombres específicos
from math import sqrt, pi
sqrt(16)             # ahora disponible directamente
pi

# 3) import con alias
import numpy as np      # convención idiomática
from datetime import datetime as dt

# 4) import "star" o asterisco (no recomendado)
from math import *      # contamina el espacio de nombres, evítalo

Dónde busca Python los módulos

Python busca los módulos en sys.path, que incluye:

  1. el directorio del script en ejecución,
  2. los directorios en PYTHONPATH,
  3. las librerías instaladas (site-packages).
Python
import sys
sys.path     # lista de directorios

Crear un módulo

Crea el archivo mio_modulo.py:

Python
# mio_modulo.py
PI = 3.14159

def area_cerchio(r):
    return PI * r * r

Desde otro archivo en el mismo directorio:

Python
import mio_modulo
mio_modulo.area_cerchio(5)   # 78.53975

from mio_modulo import area_cerchio, PI

if __name__ == "__main__":

Cuando un script se ejecuta directamente, su variable especial __name__ es igual a "__main__". Cuando el mismo archivo se importa como módulo, __name__ es igual al nombre del módulo.

Python
# strumento.py

def fai_qualcosa():
    print("lavoro!")

if __name__ == "__main__":
    # ejecutado solo si lanzas `python strumento.py`
    # NO se ejecuta si alguien importa este archivo
    fai_qualcosa()

Este es el patrón estándar para archivos que pueden servir tanto como módulo reutilizable como script ejecutable.

Paquetes: carpetas de módulos

Un directorio que contiene un archivo __init__.py (incluso vacío) se convierte en un paquete (package) importable:

Code
mio_pkg/
    __init__.py
    utenti.py
    pagamenti.py
Python
from mio_pkg import utenti
from mio_pkg.utenti import crea_utente

Pruébalo tú

Ejercicio#python.m7.l4.e1
Intentos: 0Cargando...

Importa la función `sqrt` del módulo `math` (con `from math import sqrt`), luego calcula la raíz cuadrada de 144 y asigna el resultado a `r`. Evalúa `r`.

Cargando editor...
Mostrar pista

from math import sqrt

Solución disponible después de 3 intentos

Ejercicio de repaso

Ejercicio#python.m7.l4.e2
Intentos: 0Cargando...

Importa el módulo `random` con el alias `rnd` (`import random as rnd`), luego establece la semilla en 42 con rnd.seed(42), y evalúa rnd.randint(1, 100).

Cargando editor...
Mostrar pista

import random as rnd

Solución disponible después de 3 intentos

Desafío adicional

Ejercicio#python.m7.l4.e3
Intentos: 0Cargando...

Importa las funciones `sin` y `cos` directamente del módulo `math` usando `from ... import ...`. Calcula la suma de `sin(0)` y `cos(0)`, guárdala en `trig_sum` y evalúala.

Cargando editor...
Mostrar pista

sin(0) da 0.0, cos(0) da 1.0. La suma es 1.0. Usa from math import sin, cos.

Solución disponible después de 3 intentos