5.3. Composición
Como seguramente a estas alturas ya supondrá, se puede llamar a una función desde dentro de otra. Esta habilidad se llama composición .
Como ejemplo, escribiremos una función que tome dos puntos, el centro del círculo y un punto del per³metro, y calcule el área del círculo.
Supongamos que el punto central esta almacenado en las variables xc e yc, y que el punto del perímetro lo esta en xp e yp. El primer paso es hallar el radio del círculo, que es la distancia entre los dos puntos. Afortunadamente hay una función, distancia, que realiza esta tarea:
1: radio = distancia(xc, yc, xp, yp)
El segundo paso es encontrar el area de un círculo con ese radio y devolverla:
1: resultado = area(radio)
2: return resultado
Envolviendo todo esto en una funcion, obtenemos:
1: def area2(xc, yc, xp, yp):
2: radio = distancia(xc, yc, xp, yp)
3: resultado = area(radio)
4: return resultado
Hemos llamado a esta funcion area2 para distinguirla de la funcion area definida anteriormente. Solo puede haber una unica funcion con un determinado nombre dentro de un modulo.
Las variables temporales radio y area son utiles para el desarrollo y el depurado, pero una vez que el programa esta funcionando, podemos hacerlo mas conciso integrando las llamadas a las funciones en una sola línea:
1: def area2(xc, yc, xp, yp):
2: return area(distancia(xc, yc, xp, yp))
Como actividad, escriba una funcion pendiente(x1, y1, x2, y2) que devuelva la pendiente de la l³nea que atraviesa los puntos (x1,y1) y (x2, y2). Luego use esta funcion en una funcion que se llame intercepta(x1, y1, x2, y2) que devuelva la [[y-intercepta]] de la línea a traves de los puntos (x1, y1) y (x2, y2).
Comentarios
Publicar un comentario