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:
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))