Tutorial 10, Funciones a fondo.

Hola a tod@s de nuevo, hoy voy a intentar explicaros las funciones pero mucho mas afondo de como las conocéis hasta ahora, este tema lo mas seguro es que me lleve varios tutoriales como paso con la POO.


Las funciones no son simples subprogramas que llamamos cuando queramos, si no que, pueden tratarse como si fuera un valor mas o una variable mas, por ejemplo, podemos enviar una función como argumento de otra función:

def suma(a, b):
       return a+b

def resta(a, b):
       return a-b

print resta(suma(5, 8), 5)
#imprimiría 8

Primero se crea una función llamada suma con argumentos (a y b) y una función resta con otros dos argumentos, después llamamos a la función resta y le pasamos como primer argumento:

suma(5, 8)

Pero....¡Si es una función!, exactamente, es una función, pero esa función posee un "return" por lo cual va a valer lo que devuelva, es decir:

suma(5, 8)

Es lo mismo que escribir 13, por que es el valor que devuelve, para eso sirve return y es tan importante, también podríamos hacerlo con los dos argumentos:

resta(suma(8, 5), suma(1, 4))
#daría 8 

Gracias a esto podemos pasar todas las funciones que queramos como argumentos de otras funciones, otro ejemplo:

suma(input("escribe el primer valor"), input("escribe el segundo valor"))

Creo que se entiende, le pasamos como primer y segundo valor un par de input() para que podamos teclear los valores por pantalla, pero esto llega mucho mas lejos, por que esto de meter una función como argumento se pude hacer varias veces si queremos:

resta(suma(input(), input()), suma(input(), input()))

Esto parece un lío pero es fácil, tan sólo le pasamos a resta la función suma, y a suma la función input().

Bueno chic@s espero que os haya gustado el tutorial de hoy, mañana hablaré sobre las funciones map, filter y reduce, hasta el próximo post, un abrazo a tod@s.

0 comentarios: