Una función puede tomar múltiples argumentos, estos argumentos pueden ser objetos, variables (del mismo o diferente tipo de datos) y funciones. Las funciones de Python son objetos de primera clase . En el siguiente ejemplo, se asigna una función a una variable. Esta asignación no llama a la función. Toma el objeto de función al que hace referencia gritar y crea un segundo nombre que apunta a él, gritar.
# Python program to illustrate functions # can be treated as objects def shout(text): return text.upper() print(shout('Hello')) yell = shout print(yell('Hello'))
Producción:
HELLO HELLO
Funciones de orden superior
Como las funciones son objetos, podemos pasarlas como argumentos a otras funciones. Las funciones que pueden aceptar otras funciones como argumentos también se denominan funciones de orden superior . En el siguiente ejemplo, se crea una función saludar que toma una función como argumento.
# Python program to illustrate functions # can be passed as arguments to other functions def shout(text): return text.upper() def whisper(text): return text.lower() def greet(func): # storing the function in a variable greeting = func("Hi, I am created by a function passed as an argument.") print(greeting) greet(shout) greet(whisper)
Producción
HI, I AM CREATED BY A FUNCTION PASSED AS AN ARGUMENT. hi, i am created by a function passed as an argument.
Función de envoltorio
La función wrapper o decorador nos permite envolver otra función para extender el comportamiento de la función envuelta, sin modificarla permanentemente. En Decorators, las funciones se toman como argumento en otra función y luego se llaman dentro de la función contenedora. Para saber más sobre decorador haz click aquí .
A continuación se muestra el ejemplo de un decorador simple.
# defining a decorator def hello_decorator(func): # inner1 is a Wrapper function in # which the argument is called # inner function can access the outer local # functions like in this case "func" def inner1(): print("Hello, this is before function execution") # calling the actual function now # inside the wrapper function. func() print("This is after function execution") return inner1 # defining a function, to be called inside wrapper def function_to_be_used(): print("This is inside the function !!") # passing 'function_to_be_used' inside the # decorator to control its behavior function_to_be_used = hello_decorator(function_to_be_used) # calling the function function_to_be_used()
Producción:
Hello, this is before function execution This is inside the function !! This is after function execution
Función de envoltura lambda
En Python, función anónima significa que una función no tiene nombre. Como ya sabemos, la def
palabra clave se usa para definir las funciones normales y la lambda
palabra clave se usa para crear funciones anónimas. Esta función puede tener cualquier número de argumentos, pero solo una expresión, que se evalúa y devuelve. La función Lambda también puede tener otra función como argumento. El siguiente ejemplo muestra una función lambda básica donde se pasa otra función lambda como argumento.
# Defining lambda function square = lambda x:x * x # Defining lambda function # and passing function as an argument cube = lambda func:func**3 print("square of 2 is :"+str(square(2))) print("\nThe cube of "+str(square(2))+" is " +str(cube(square(2))))
Producción:
square of 2 is :4 The cube of 4 is 64
Publicación traducida automáticamente
Artículo escrito por karthikshenoy2001 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA