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
# 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ítaloDónde busca Python los módulos
Python busca los módulos en sys.path, que incluye:
- el directorio del script en ejecución,
- los directorios en
PYTHONPATH, - las librerías instaladas (
site-packages).
import sys
sys.path # lista de directoriosCrear un módulo
Crea el archivo mio_modulo.py:
# mio_modulo.py
PI = 3.14159
def area_cerchio(r):
return PI * r * rDesde otro archivo en el mismo directorio:
import mio_modulo
mio_modulo.area_cerchio(5) # 78.53975
from mio_modulo import area_cerchio, PIif __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.
# 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:
mio_pkg/
__init__.py
utenti.py
pagamenti.py
from mio_pkg import utenti
from mio_pkg.utenti import crea_utentePruébalo tú
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`.
Mostrar pista
from math import sqrt
Solución disponible después de 3 intentos
Ejercicio de repaso
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).
Mostrar pista
import random as rnd
Solución disponible después de 3 intentos
Desafío adicional
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.
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