Según el Index de TIOBE, Python es uno de los lenguajes de programación más utilizados actualmente. Ha servido para un sinfín de proyectos para los programadores y expertos en computación. Esto es gracias a las herramientas y particularidades que caracterizan a este lenguaje de programación. Por ejemplo, tiene muchas funciones que se utilizan para la programación funcional. En este post te hablaremos acerca de 3 tipos de funciones en Python que podrás emplear en la escritura de tus códigos, que son las funciones de primera clase, las funciones de orden superior y las funciones anónimas.
Tipos de funciones de primera clase
Dentro de los tipos de funciones en Python, lo que define a las funciones de primera clase es cómo el lenguaje de programación se relaciona con las funciones. En lenguajes más antiguos, las funciones eran equivalentes a sentencias del programa y no podían tratarse como datos. Sin embargo, en Python, las funciones de primera clase empiezan a tratarse como datos primitivos, que pueden asociarse a variables o a estructuras de datos para después aprender el uso de funciones en Python.
El siguiente ejemplo te permitirá entender las capacidades de los tipos de funciones de primera clase:
def voz_alta(texto)
return texto.upper( ) + » !!»
print(voz_alta(«Hola»))
gritando = voz_alta
print(gritando(«Hola»))
En el ejemplo anterior, la función definida es un dato que se asocia a una variable determinada, que en este caso es «gritando». Al principio, se ejecuta con el nombre original de la función, mientras que después se ejecuta con la variable que apunta a la función. Así, una función es de primera clase cuando tiene diferentes nombres al asignarle variables distintas.
Una función también se considera de primera clase cuando se asocia a una estructura de datos, como observarás en el siguiente ejemplo con estos tipos de funciones:
def voz_alta(texto)
return texto.upper( ) + » !!»
print(voz_alta(«Hola»))
gritando = voz_alta
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana
print(gritando(«Hola»))
diálogo = [
( ‘Hola’, gritando),
( ‘Por favor, no chilles, me duele la cabeza’, None),
(‘Perdona, ¿quieres una aspirina?’, voz_baja)
]
for frase, modo in dialogo
if modo == None;
print(frase)
else:
print(modo(frase))
Siguiendo el ejemplo anterior, la estructura de datos se define como el diálogo y un bucle (for) que lo recorre de tupla en tupla y aplica una condición con unos parámetros determinados. Los parámetros están determinados por el modo, es decir, la variable que hemos propuesto anteriormente, entre ellos «gritando», «voz alta» y «voz baja».
Funciones de orden superior
Para continuar con los tipos de funciones en Python, debemos mencionar las funciones de orden superior. Estas funciones pueden actuar como parámetros de otras funciones o resultados de otras funciones. Para entenderlo, te mostraremos un ejemplo, siguiendo los parámetros del ejemplo de la función de primera clase:
def saludar(saludo), modo):
saludo_formateado = modo(saludo)
print( ‘*’ * len(saludo_formateado))
print(saludo_formateado)
print( ‘.’ * len(saludo_formateado))
from funciones import saludar, gritando, susurrando
saludar( ‘Hola’, gritando)
El ejemplo anterior nos muestra cómo la función de «modo» de Python, que aparece en el primer ejemplo de este post, se ha utilizado como parámetro para otra función.
Ahora, una función de orden superior también puede actuar como resultado de otra función de Python:
def creaEncriptador (clave):
def encriptar (mensaje):res = ‘ ‘
for caracter in mensaje :
nuevo_caracter = cesar ( caracter, clave)
res += nuevo_caracter
return res
return encriptar
En este caso, aparece el cifrado CESAR, que se define como un alfabeto y clave determinada. Lo que hace esta clave (pongamos el ejemplo de +3) es codificar una letra. Si tenemos la E y la clave es +3, el resultado sería H, es decir, se saltan 3 puestos del abecedario.
En lo que debemos fijarnos del ejemplo anterior es en cómo una función de primera clase (def encriptar (mensaje), en este caso), puede ser tratada como datos por otra función (def creaEncriptador (clave), en este caso). De esta forma, resulta en una función que se trata como un dato que puede ejecutarse.
Funciones anónimas
Las últimas de las funciones de los tipos de funciones en Python que del que hablaremos serán las funciones anónimas o las lambdas. Estas son funciones sin nombre que pueden usarse para asociarlas directamente a variables y para inyectarse directamente a otras funciones. La anatomía de la lambda de Python es la siguiente:
lambda p1, p2,…pn: f(p1, p2,…pn)
En la función anónima está la instrucción de lambda, una serie de parámetros sin paréntesis separados por comas, dos puntos que funcionan como creadores de sentencias; es decir, una operación sobre los parámetros definidos anteriormente. En la lambda, nunca se utiliza el return y, además, solo admite una instrucción para el uso de funciones en Python.
El siguiente es un ejemplo sencillo de cómo utilizar las funciones anónimas o las lambdas en nuestros códigos de sumatorias:
Q = lambda x: x ** 2
Entonces:
Q(8)= 64
¿Cómo utilizar lo aprendido?
Si bien ahora conoces 3 tipos de funciones en Python, debes utilizarlas en tus códigos para practicar y asimilarlas. Aun así, quedan muchos más tipos de funciones en Python por aprender. Por eso, te invitamos a inscribirte en el Curso de Introducción a la Programación desde Cero, donde conocerás en profundidad estas funciones y muchas más, tanto de forma teórica como práctica.
Este curso cuenta con un plan de estudio muy completo, con secciones que recorren las principales y más básicas características del pensamiento computacional y el lenguaje de programación, como los tipos de funciones en Python en comparativa a JavaScript. ¡No pierdas esta oportunidad de empezar en el mundo del código desde cero con los mejores profesores en programación!