Decorador de funciones
Las funciones en Python son ciudadanas de primera clase. Esto significa que pueden pasarse como argumentos, devolverse desde una función, modificarse y asignarse a una variable.
Un decorador es un patrón de diseño en Python que permite al usuario agregar nueva funcionalidad a un objeto existente sin modificar su estructura. Crea un decorador de funciones que envuelva una función para crear otra con un comportamiento ampliado. La entrada es una función matemática simple y(x). La salida es una función f(val, dict) con las siguientes propiedades:
- Si
vales un solo número, entoncesfdevuelvey(val). - Si
vales una cadena igual a"length" or "area", entoncesfdevuelve una aproximación lineal por tramos de la longitud de la curva o una aproximación trapezoidal del área bajo la curva. La región para la longitud de la curva o el área se proporciona en el diccionario (por ejemplo,{"begin": -3, "end": 2, "step": 0.1}). - Si
len(vals)no es igual a uno o si no es una cadena"length" or "area", entoncesfdevuelveNone.
Ejemplos
f = decor(lambda x: x * x)
f() ➞ None
f(3) ➞ 9
f(3, 4) ➞ None
f("volume", **{"begin": 0, "end": 2, "step": 0.001}) ➞ None
f("area", **{"begin": 0, "end": 2, "step": 0.001}) ➞ 2.67Notas
- No es necesario redondear los resultados; las pruebas se encargan de ello.
- La función devuelta
fdebe aceptar argumentos posicionales y de palabras clave.