¿Cómo emplear una función anidada en Python?

Autor: | Última modificación: 18 de julio de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

¿Alguna vez has querido saber cómo emplear una función anidada en Python? Si la respuesta es afirmativa, te recomendamos seguir leyendo este post. Se denomina una función anidada dicha función la misma está enlazada dentro de otras funciones. Es decir, que una función llama a otra anteriormente establecida y la trabaja con argumentos como *args y **kwargs. Así pues, en este artículo te comentamos cómo emplear una función anidada en Python.

Función anidada

La función anidada se establece como una función que llama a otra función a partir de su definición dentro de ella. Así pues, ambas funciones se trabajan cuando se les ingresan argumentos como *args, para trabajar por posiciones, y **kwargs, para trabajar con las keywords o nombres que se le atribuyen a los valores dentro de la función.

¿Cómo emplear una función anidada en Python?

Como has podido leer en el apartado anterior, los argumentos que viene por *args se establecen por la posición, mientras que los argumentos que vienen por keywords o palabras clave lo hacen con **kwargs, dentro de una función anidada.

En las funciones que representaremos a continuación, los valores que vienen por *arg están establecidos como una lista, mientras que los valores por **kwargs lo hacen como un diccionario.

Primer ejemplo para definir la función anidada

En el primero para definir la función anidada vemos cómo el programa establece los valores para cada uno de los argumentos, es decir, para args y kwargs. En primer lugar, a args se le ingresa un valor 1, como tupla para definir una posición, mientras que a kwargs se le ingresa una keyword como diccionario.

En el momento de ejecutar, vemos cómo funciona cada uno de ellos. Mientras las dos primeras opciones, ( ) y (6), devuelven solo el primer valor, el del uno, transformado para la ejecución dada su posición (uno = 7), vemos como también se transforma el uno, pero dada la keyword.

#función original a la que se le llama

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

def tres_parametros (uno, dos = 2, tres = 3)

print (f «Los parámetros valen uno = {uno}, dos = {dos}, tres = {tres}»)

#primera forma de definir una función con *args y **kwargs.

def anidada (*args. **kwargs)

if len (args) == 1

uno = args [0]

elif «uno» in kwargs:

uno = kwargs [«uno»]

else:

uno = 1

tres_parámetros = (uno, dos = 4, tres = 9)

#valores que se imprimen con la función

anidada ( )

anidada (6)

anidada (uno = 7)

#resultado después de ejecutar la función

Los parámetros valen uno = 1 dos = 4 tres = 9

Los parámetros valen uno = 4 dos = 4 tres = 9

Los parámetros valen uno = 7 dos = 4 tres = 9

Segundo ejemplo para definir la función anidada

En esta vemos como la función solo corre con los valores que hemos establecido en la función anidada. No encontramos ningún ingreso de tuplas o diccionarios, como en el ejemplo anterior.

Aquí, por otro lado, vemos cómo ingresamos los argumentos args y kwargs a nuestra función tres_parametros.

En el momento de ejecutar, vemos que 10 entra por args, ya que es un argumento posicional. Dado que no hay otros argumentos que lo acompañen, los valores dos y tres de la función original se establecen por defecto. Esto también pasa en la segunda llamada de la función anidada (10, 12), pues entran posicionalmente, lo que hace que el tercer valor, es decir, el 3, quede por defecto.

En la terceda llamada, los argumentos entran por kwargs, pues tienen una keyword. En la última, se mezclan los dos argumentos, pues uno entra por posición y otro por keyword.

#función original a la que se llama

def tres_parametros (uno, dos = 2, tres = 3)

print (f «Los parámetros valen uno = {uno}, dos = {dos}, tres = {tres}»)

#segunda forma de definir una función con *args y **kwargs.

def anidada (*args. **kwargs)

tres_parametros = (*args, **kwargs)

#valores que se imprimen con la función

anidada (10 )

anidada (10, 12)

anidada (tres = 13, uno = 11, dos = 12)

anidad (6, tres = 7)

#resultado después de ejecutar la función

Los parámetros valen uno = 10 dos = 2 tres = 3

Los parámetros valen uno = 10 dos = 12 tres = 3

Los parámetros valen uno = 11 dos = 12 tres = 13

Los parámetros valen uno = 6 dos = 12 tres = 7

De esta manera, ya sabes cómo manejar dos opciones para ejecutar una función anidada con los argumentos *args y **kwargs para trabajar posicionalmente y desde keywords.

¿Cuál es el siguiente paso?

Ahora que conoces cómo emplear una función anidada en Python, con argumentos como *args y **kwargs, estás mucho más cerca de realizar un programa de código más robusto y práctico.

Así pues, si te interesa seguir aprendiendo sobre programación, en especial sobre Python, te recomendamos apuntarte al Aprende a Programar desde Cero Full Stack Jr. Bootcamp de KeepCoding. Es una oportunidad perfecta para convertirte en un programador en pocos meses con la compañía de profesores expertos en el código. ¡Anímate y sigue programando!

[email protected]

¿Sabías que hay más de 40.000 vacantes para desarrolladores web sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso!