더북(TheBook)

6.3 조합

지금까지 예상한 것처럼 함수 안에서 다른 함수를 호출할 수 있다. 예를 들어 원의 중심 좌표와 둘레의 좌표를 인수로 받아서 원의 넓이를 계산하는 함수를 작성해보겠다.

중심(center) 좌표는 변수 xcyc에 저장하고, 둘레(perimeter)의 좌표는 xp, yp에 저장한다고 가정하자. 첫 번째 단계는 원의 지름을 구하는 것으로 두 좌표의 거리로 구할 수 있다. 앞에서 방금 작성한 distance 함수로 거리를 구하면 된다.

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

다음 단계는 이렇게 구한 반지름으로 원의 넓이를 구하는 것이다. 이 함수도 이미 앞에서 작성했다.

result = area(radius)

이들 단계를 함수 하나로 캡슐화할 수 있다.

def circle_area(xc, yc, xp, yp):

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

result = area(radius)

return result

임시 변수 radiusresult는 개발과 디버깅 단계에서는 유용하지만, 프로그램이 동작한다면 함수 호출을 조합해서 프로그램을 더 간결하게 만들 수 있다.

def circle_area(xc, yc, xp, yp):

return area(distance(xc, yc, xp, yp))

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.