728x90
반응형
- 개요
일급 함수(first-class function)는 함수를 변수나 데이터 구조와 같은 일반 값과 동등하게 취급하는 것을 의미한다
일급 함수의 특징은 다음과 같다
- 런타임 시점에서 초기화
- 일급 함수를 변수에 할당 가능
- 일급 함수를 다른 함수의 인수로 전달 가능
- 일급 함수를 다른 함수의 반환값으로 사용 가능
- 일급 함수에 대해 알아보기
def factorial(n):
if n == 1:
return 1
return n * factorial(n-1)
class A:
pass
위와 같이 팩토리얼을 계산하는 factorial 함수와 일반 클래스인 A 클래스를 정의하였다
위의 두 요소에 대해 비교하면서 일급 함수에 대해 알아본다
print(factorial(5))
print(type(factorial), type(A))
print(dir(factorial))
print(set(sorted(dir(factorial))) - set(sorted((dir(A)))))
위와 같이 출력하도록 코드를 구성하였다
출력하는 요소는 다음과 같다
- 함수를 호출
- 함수의 type과 클래스의 type 출력
- 함수에 어떤 변수와 메서드가 존재하는지 출력
- 클래스와 다르게 함수만이 갖고 있는 변수와 메서드 출력

실행 결과는 위와 같다
파이썬에서는 함수 자체를 function이라는 자료형으로 정의하고
함수 객체는 해당 자료형으로서 사용하는 것을 알 수 있다
또한 function 자료형 내부에서 제공하는 많은 수의 메서드들도 확인이 가능하다
- 함수 객체
func = factorial
print(func)
print(func(10))
print(list(map(func, range(1, 10))))
생성한 factorial 함수를 func라는 이름의 변수에 대입하여 함수 객체를 생성하였다
이후 몇가지 정보를 출력하는데 다음과 같다
- 함수 객체 자체를 출력
- 함수 객체에 인자를 넣은 결과를 출력
- 함수 객체에 인자를 넣은 결과를 여러개 출력

실행한 결과는 위와 같다
함수 객체가 존재하는 메모리의 주소가 제대로 출력되었고,
인자를 받은 함수 객체 역시 문제없이 수행하였다
728x90
반응형
'Python > 파이썬 심화' 카테고리의 다른 글
| 클로저 (1) (0) | 2025.08.18 |
|---|---|
| 일급 함수의 특징 (2) (0) | 2025.08.15 |
| 파이썬 시퀀스 (7) (0) | 2025.08.12 |
| 파이썬 시퀀스 (6) (0) | 2025.08.12 |
| 파이썬 시퀀스 (5) (0) | 2025.08.07 |