Las funciones en Python son objetos de primera clase . Los objetos de primera clase en un idioma se manejan de manera uniforme en todo momento. Pueden almacenarse en estructuras de datos, pasarse como argumentos o usarse en estructuras de control.
Propiedades de las funciones de primera clase:
- Una función es una instancia del tipo de objeto.
- Puede almacenar la función en una variable.
- Puede pasar la función como un parámetro a otra función.
- Puede devolver la función desde una función.
- Puedes almacenarlos en estructuras de datos como tablas hash, listas,…
Ejemplo 1: funciones sin argumentos
En este ejemplo, el primer método es A() y el segundo método es B(). El método A() devuelve el método B() que se mantiene como un objeto con el nombre return_function y se usará para llamar al segundo método.
Python3
# define two methods # second method that will be returned # by first method def B(): print("Inside the method B.") # first method that return second method def A(): print("Inside the method A.") # return second method return B # form a object of first method # i.e; second method returned_function = A() # call second method by first method returned_function()
Producción :
Inside the method A. Inside the method B.
Ejemplo 2: Funciones con argumentos
En este ejemplo, el primer método es A() y el segundo método es B(). Aquí se llama al método A(), que devuelve el método B(), es decir; ejecuta ambas funciones.
Python3
# define two methods # second method that will be returned # by first method def B(st2): print("Good " + st2 + ".") # first method that return second method def A(st1, st2): print(st1 + " and ", end = "") # return second method return B(st2) # call first method that do two work: # 1. execute the body of first method, and # 2. execute the body of second method as # first method return the second method A("Hello", "Morning")
Producción :
Hello and Good Morning.
Ejemplo 3: Funciones con lambda
En este ejemplo, el primer método es A() y el segundo método no tiene nombre, es decir; con lambda. El método A() devuelve el método de instrucción lambda que se mantiene como un objeto con el nombre devuelto_función y se utilizará para llamar al segundo método.
Python3
# first method that return second method def A(u, v): w = u + v z = u - v # return second method without name return lambda: print(w * z) # form a object of first method # i.e; second method returned_function = A(5, 2) # check object print(returned_function) # call second method by first method returned_function()
Producción :
<function A.<locals>.<lambda> at 0x7f65d8e17158> 21
Publicación traducida automáticamente
Artículo escrito por deepanshu_rustagi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA