Składanie funkcji

Jak już widzieliśmy wcześniej z ciała jednej funkcji możemy wywołać inną funkcję. Ta możliwość budowania funkcji z użyciem innych funkcji nazywa się składaniem (composition).

Jako przykład podamy funkcję, która pobiera dwa punkty: środek koła oraz punkt na jego obwodzie, a następnie oblicza pole koła.

Zakładamy, że współrzędne środka przechowywane są w zmiennych xc i yc, a współrzędne punktu na obwodzie w zmiennych xp i yp. W pierwszym kroku znajdziemy promień koła, czyli odległość pomiędzy tymi dwoma punktami. Na nasze szczęście napisaliśmy taką funkcję (distance), która właśnie to oblicza, teraz tylko musimy jej użyć.

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

W drugim kroku musimy znaleźć pole koła o właśnie takim promieniu i je zwrócić. Po raz kolejny posłużymy się wcześniej napisaną funkcją.

result = area(radius)
return result

Zbierając to wszystko do funkcji, dostajemy:




(ch06_newarea)

Nazwaliśmy tę funkcję area2 aby odróżnić ją od wcześniej zdefiniowanej funkcji area. W danym module może istnieć tylko jedna funkcja o danej nazwie.

Proszę zwrócić uwagę na fakt, że mogliśmy złożyć funkcje bez budowania zmiennych tymczasowych.

def area2(xc, yc, xp, yp):
    return area(distance(xc, yc, xp, yp))
Następna część - Wykres słupkowy w wykonaniu żółwia