Sei sulla pagina 1di 3

Funciones anidadas

● Son funciones que reciben como parámetros otras funciones.


● Las funciones anidadas pueden o no pueden recibir parametros.

Example:

def validacion (num_uno, num_dos):


return num_uno > 0 and num_dos > 0

def division (num_uno, num_dos):


# Llamado de una función dentro de otra función
if validacion(num_uno,num_dos):
return num_uno/num_dos

resultado = division(10,20)
print(resultado)

Las funciones anidadas


Este concepto es muy utilizado cuando una función que fue creada solo se necesita ser
llamada por otra función en todo el programa y se realiza de la siguiente manera. Se realiza
poniendo una función dentro de otra función.

Example:

def division (num_uno, num_dos):


def validacion (num_uno, num_dos):
return num_uno > 0 and num_dos > 0
if validacion(num_uno,num_dos):
return num_uno/num_dos

resultado = division(10,20)
print(resultado)

Los argumentos se pueden quitar porque es una función anidada, ya que toda las variables
locales las va a poder acceder validación.
def division (num_uno, num_dos):
def validacion ():
return num_uno > 0 and num_dos > 0
if validacion():
return num_uno/num_dos

resultado = division(10,20)
print(resultado)

Ejemplo con una función más print


def division (num_uno, num_dos):
variable = 'Nuevo'
def validacion ():
print(variable)
return num_uno > 0 and num_dos > 0
if validacion():
return num_uno/num_dos

resultado = division(10,20)
print(resultado)

Funciones anidadas que no es llamada

def division (num_uno, num_dos):


def validacion ():
return num_uno > 0 and num_dos > 0
return num_uno/num_dos

resultado = division(10,20)
print(resultado)

Closures
Funciones que crean funciones. Los Clousres van a tener adentro otra función que es la
que va a crear la diferencia es que en este momento vamos a retornar la función a crear.
Basicamente son funciones que crean funciones.
# Funcion Clousure
def crear_funcion (num_uno, num_dos):
def validacion ():
return num_uno > 0 and num_dos > 0
return validacion

nueva_funcion = crear_funcion(10,20)
# Algoritmo para ejecutar nueva función
print(nueva_funcion())

Example:
Una función puede tener como argumento otra función.

# Funcion Clousure
def crear_funcion (num_uno, num_dos):
def validacion ():
print("Se ejecuta la validacion")
return num_uno > 0 and num_dos > 0
return validacion

def aplicar_funcion(func):
resultado = func() # V o F
print(resultado)

nueva_funcion = crear_funcion(10,20)
aplicar_funcion(nueva_funcion)

Potrebbero piacerti anche