Functions as Arguments
Lección 3 de 12 del curso Decoradores de Python de Coddy.
En Python, podemos pasar una función como argumento a otra función.
Por ejemplo,
def add_numbers(a, b):
return a + b
def multiply_numbers(a, b):
return a * b
def calculate(func, a, b):
return func(a, b)
result = calculate(add_numbers, 2, 3)
print(result) # Salida: 5
result = calculate(multiply_numbers, 2, 3)
print(result) # Salida: 6
En este ejemplo, definimos dos funciones: add_numbers y multiply_numbers.
Luego definimos una tercera función llamada calculate, que toma una función func como su primer argumento, junto con dos argumentos adicionales a y b.
Cuando llamamos a calculate, pasamos el nombre de la función que queremos usar (ya sea add_numbers o multiply_numbers) como el argumento func, junto con los dos números sobre los que queremos operar.
La función calculate luego llama a la función func con los dos números y devuelve el resultado.
En el ejemplo anterior, llamamos a calculate dos veces: una vez con add_numbers y otra con multiply_numbers.
La primera llamada devuelve la suma de 2 y 3 (que es 5), y la segunda llamada devuelve el producto de 2 y 3 (que es 6).
Desafío
FácilEscribe una función llamada list_operator que reciba una lista de enteros y una función de operador como argumentos.
La función operator debe recibir dos enteros como entrada y devolver un único entero como salida.
La función list_operator debe aplicar la función de operador a todos los pares de enteros adyacentes en la lista y devolver una nueva lista con los resultados.
Aquí tienes un ejemplo de cómo debería funcionar la función:
>>> numbers = [1, 2, 3, 4, 5]
>>> result = list_operator(numbers, operator.add)
>>> result
[3, 5, 7, 9]
>>> numbers = [10, 20, 30, 40]
>>> result = list_operator(numbers, operator.mul)
>>> result
[200, 600, 1200]Restricciones
- La lista de entrada siempre contendrá al menos dos enteros.
- La función de operador siempre recibirá dos enteros como entrada y devolverá un único entero como salida.
¡Nota! La función de operador es proporcionada por nosotros, no necesitas crearla, solo usarla.
Pruébalo tú mismo
Todas las lecciones de Decoradores de Python
Practica por tu cuenta: Compilador de Python online