일급 함수

매일 공부(ML)·2022년 11월 27일
0

Fluent Python

목록 보기
27/130

객체로서의 함수

일급 함수

파이썬의 함수는 일급 객체로 다양한 기능이 구현됩니다.

  • 런타임에 생성할 수 있다.
  • 데이터 구조체의 변수나 요소에 할당할 수 있다.
  • 함수 인수로 전달할 수 있다.
  • 함수 결과로 반환할 수 있다.

함수를 객체처럼 다루기

"""
함수를 생성하고, 호출
__doc__속성을 읽고 함수 객체 자체가 function 클래스의 객체
"""
#함수를 생성해서 테스트하고, 함수 __doc__을 읽어서 자료형 확인

def factorial(n):
	"""returns n!"""
    return 1 if n < 2 else n * factorial(n-1)
    
factorial(42)
factorial.__doc__
type(factorial)
"""
__doc__ 속성은 객체의 도움말 텍스트를 생성하기 위해서 사용된다.

파이썬 대화형 콘솔에서 help(factorial) 명령과 같은 화면 출력하고, 설명문은 함수 객체의 __doc__ 속성에서 가져온다
"""


#함수를 다른 이름으로 사용하고 함수의 인수로 전달하기

fact = factorial
fact
fact(5)
map(factorial, range(11))
list(map(fact, range(11)))
profile
성장을 도울 아카이빙 블로그

0개의 댓글