더북(TheBook)

4.7 일급 객체인 함수

파이썬 함수를 일급(first-class) 객체로 다루면 디버깅, 프로파일링, 그리고 관련 작업 수행 시 무척 유용한 또 하나의 생산적인 도구를 갖게 되는 셈이다. 이 방법으로 런타임 시 함수 관련 정보를 확보하는 장점을 취할 수 있다. 예를 들어 다음과 같이 avg 함수를 정의했다고 해 보자.

def avg(a_list):
    '''리스트 항목들의 평균값을 반환한다'''
    x = (sum(a_list) / len(a_list))
    print('The average is:', x)
    return x

avg는 이 함수를 참조하는 심벌릭 이름이며, 파이썬 언어 안에서 호출될 수 있는 콜러블(callable)이기도 하다. 우리는 avg의 타입이 function인 것을 검증하는 것과 같이 avg와 함께 여러 작업을 수행할 수 있다. 예시를 살펴보자.

>>> type(avg)
<class 'function'>
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.