Funciones de primera clase en Python

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. Se dice que un lenguaje de programación admite funciones de primera clase si trata las funciones como objetos de primera clase. Python admite el concepto de funciones de primera clase.

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,…

Ejemplos que ilustran funciones de primera clase en Python

1. Las funciones son objetos: las funciones de Python son objetos de primera clase. En el siguiente ejemplo, estamos asignando 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

2. Las funciones se pueden pasar como argumentos a otras funciones: 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, hemos creado 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.

3. Las funciones pueden devolver otra función: como las funciones son objetos, podemos devolver una función desde otra función. En el siguiente ejemplo, la función create_adder devuelve la función de sumador.

# Python program to illustrate functions
# Functions can return another function
  
def create_adder(x):
    def adder(y):
        return x+y
  
    return adder
  
add_15 = create_adder(15)
  
print (add_15(10))

Producción:

25

Este artículo es una contribución de Mayank Agrawal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *