CodeForge

Python de Cero a Experto / Funciones

Scope, docstrings y anotaciones de tipo

Teoría22 min20 XP

¿Por qué una variable creada dentro de una función no existe fuera de ella? Eso es el SCOPE: la regla de dónde "vive" y es visible cada variable. Entenderlo evita una clase entera de bugs confusos. Y de paso aprendes dos marcas de código profesional: los DOCSTRINGS (documentar qué hace una función) y las anotaciones de tipo (decir qué tipos espera y devuelve). Hoy tus funciones se vuelven claras, seguras y bien documentadas.

Cada cuarto con sus cosas

Local vs global

Una variable creada DENTRO de una función es LOCAL: existe solo mientras la función corre, y no se ve afuera. Si dentro asignas a un nombre que también existe afuera (mensaje), creas una variable local NUEVA que NO toca la global —por eso "fuera" sigue mostrando la global—. Una función SÍ puede LEER variables globales (como tasa), pero no las cambia por accidente. Este aislamiento hace que las funciones sean predecibles: lo que pasa dentro, se queda dentro.

Docstrings y anotaciones de tipo

Si defines mensaje = 'global' fuera, y dentro de una función haces mensaje = 'local', ¿qué vale mensaje fuera después de llamar la función?

Mini-reto

Documenta y aísla: 1) escribe promedio(valores: list) -> float que devuelva el promedio de una lista de números, con un docstring que explique qué hace, sus parámetros y su retorno; 2) anota los tipos de una función con_descuento(valor: float, pct: float) -> float; 3) comprueba con un ejemplo que una variable creada dentro de una función NO existe fuera (intenta imprimirla y observa el error, luego coméntalo). Imprime el __doc__ de tu función promedio.

Qué sigue

Ya escribes funciones claras y bien documentadas. La última lección del módulo abre el mundo más allá de tu archivo: los MÓDULOS e IMPORTS —cómo usar código de la biblioteca estándar de Python (math, random, datetime) y de librerías externas con pip—. Ahí Python revela su verdadero poder: no reinventas la rueda, la importas.