Devolver una función desde una función – Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *