3 tipos de funciones en Python

Autor: | Última modificación: 27 de mayo de 2022 | Tiempo de Lectura: 4 minutos
Temas en este post: ,

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.

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.

El siguiente ejemplo te permitirá entender las capacidades de las 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:

def voz_alta(texto)
return texto.upper( ) + » !!»

print(voz_alta(«Hola»))

gritando = voz_alta


print(gritando(«Hola»))

🔴 ¿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

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», 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:

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 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.

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!

[email protected]

¿Sabías que hay más de 40.000 vacantes para desarrolladores web sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso!