일급 객체 (first-class object)

Language 2020. 2. 17. 23:19 posted by TechNote.kr


일급 객체 (first-class object) 는 아래와 같이 불리기도 한다. 

 

  • first-class citizen
  • first-class type
  • first-class entity
  • first-class value

 

일급 객체의 특징

 

  • 함수의 인자로 전달 가능
  • 함수의 결과로 반환 가능

Python 에서는 정수, 문자열, list 등과 더불어 함수 또한 일급 객체이다. 이에 따라 아래와 같이 하나의 함수를 다른 함수의 인자로 넘겨줄 수 있다. 

 

>>> def reverse(data):
...     return data[::-1]
... 
>>> data = ['zbc', 'tde', 'dcd', 'xfg']
>>> sorted(data, key=reverse)
['zbc', 'dcd', 'tde', 'xfg']

 

  • 할당문의 대상이 될 수 있음

Python 에서는 함수가 일급 객체이기 때문에 다른 변수에 할당을 할 수 있다. 

>>> def show():
...     print("RET")
... 
>>> a = show
>>> a()
RET

 

  • 비교의 대상이 될 수 있음
  • Runtime 에 생성 가능