viernes, 18 de abril de 2025

Thinkcspy. Funciones / 6.10 Composición

 

6.10. Composition

Como ya hemos visto, puede llamar a una función desde otra. Esta capacidad de construir funciones mediante el uso de otras funciones se llama composición.

Como ejemplo, escribiremos una función que toma dos puntos, el centro del Círculo y un punto en el perímetro y calcula el área del círculo.

Suponga que el punto central se almacena en las variables xcy yc, y El punto perimetral está en xpy yp. El primer paso es encontrar el Radio del círculo, que es la distancia entre los dos puntos. Afortunadamente, acabamos de escribir una función, distance, eso hace exactamente eso, Así que ahora todo lo que tenemos que hacer es usarlo:

radius = distance(xc, yc, xp, yp)

El segundo paso es encontrar el área de un círculo con ese radio y devolverlo. Nuevamente usaremos una de nuestras funciones anteriores:

result = area(radius)
return result

Envolviendo eso en una función, obtenemos: 

>>def distance(x1, y1, x2, y2):
>>        dx = x2 - x1
>>        dy = y2 - y1
>>        dsquared = dx**2 + dy**2
>>        result = dsquared**0.5
>>        return result

>>def area(radius):
>>    b = 3.14159 * radius**2
>>    return b

>>def area2(xc, yc, xp, yp):
>>    radius = distance(xc, yc, xp, yp)
>>    result = area(radius)
>>    return result

>>print(area2(0,0,1,1))

Llamamos a esta función area2 para distinguirlo del area función definido anteriormente. Solo puede haber una función con un nombre de pila dentro de un módulo.

Tenga en cuenta que podríamos haber escrito la composición sin almacenar los resultados intermedios.

>>def area2(xc, yc, xp, yp):
>>    return area(distance(xc, yc, xp, yp))


No hay comentarios.:

Publicar un comentario

Entradas recientes

Sympy: Mecanica, Ejemplo de oscilador con un pendulo

  Oscilador Duffing con un péndulo En este ejemplo demostramos el uso de la funcionalidad proporcionada en sympy.physics.mechanics para de...

Entradas Populares