Python/파이썬 심화

일급 함수의 특징 (1)

monstro 2025. 8. 12. 23:25
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