Funciones y modulos
Las funciones permiten encapsular comportamiento y los modulos permiten organizar codigo en archivos reutilizables.
Definir funciones
python
def greet(name: str) -> str:
return f"Hola, {name}"Parametros con valor por defecto:
python
def create_user(name: str, active: bool = True) -> dict:
return {"name": name, "active": active}Argumentos variables
python
def total(*numbers: float) -> float:
return sum(numbers)python
def build_user(**fields) -> dict:
return fieldsScope
python
tax = 0.21
def price_with_tax(price: float) -> float:
return price * (1 + tax)Evita modificar variables globales desde funciones salvo que haya una razon clara.
Modulos
Archivo math_utils.py:
python
def add(a: int, b: int) -> int:
return a + bUso:
python
from math_utils import add
print(add(2, 3))Paquetes
Estructura:
txt
app/
__init__.py
services.py
repositories.pyImport relativo dentro del paquete:
python
from .repositories import UserRepositoryBuenas practicas
- Una funcion debe hacer una cosa clara.
- Prefiere devolver valores a imprimir desde todas partes.
- Usa anotaciones de tipo en funciones publicas.
- Evita funciones con demasiados parametros.
- Agrupa modulos por responsabilidad, no por tipo generico.
Errores comunes
- Ejecutar codigo al importar un modulo sin protegerlo.
- Crear dependencias circulares entre modulos.
- Usar nombres de archivo como
random.pyojson.py.
Ejercicio
Crea un modulo calculator.py con funciones add, subtract, multiply y divide. Importalas desde main.py y valida division por cero.
