Función dentro de función en Python
En Python, dentro de unas funciones se pueden declarar
otras. Supongamos que tenemos una función externa
outer, dentro de la cual se encuentra
la función inner:
def outer():
def inner():
pass
El ejemplo anterior parece bastante
simple. Sin embargo, a menudo hay situaciones en las que
en el cuerpo de la función outer además de
inner se realizan otras
operaciones. Para simplificar el código, se
podría sacar inner al bloque externo
de código, pero esta función se usará
solo una vez y solo dentro de la función
outer. Por lo tanto, no tiene sentido
sacarla más allá de sus límites.
Consideremos un ejemplo en el que a la función
outer se le pasa una lista. Y con la ayuda
de la función inner el elemento numérico
de la lista se elevará al cuadrado.
Para ello, después de la función inner
declaramos una lista vacía res, en
la cual se acumularán los elementos
elevados al cuadrado en un ciclo:
def outer(lst):
def inner(num):
return num ** 2
res = []
for el in lst:
res.append(inner(el))
return res
Llamemos a la función outer,
pasémosle como parámetro una lista y mostremos
el resultado en la consola:
print(outer([2, 3, 5])) # mostrará [4, 9, 25]
Escriba una función externa y una interna, cuya trabajo conjunto muestre cada elemento de cadena de la lista con la primera letra en mayúscula.
Se dan las funciones:
def func1(num):
if num > 0:
num += 2
return num
def func2(iter):
res = []
for el in iter:
res.append(func1(el))
return res
Reescriba el código para que func1
sea una función interna de func2.