Python 일급객체(FIRST-CLASS CITIZEN)
일급 객체(FIRST-CLASS CITIZEN)는 객체 지향 프로그래밍(OOP) 중에서 파이썬을 포함한 몇몇 프로그래밍 언어에서 발견할 수 있는 개념이다. 다음의 조건을 만족한다.
- 변수나 데이터 구조 안에 담을 수 있다.
- 매개변수로 전달이 가능하다.
- 리턴값으로 사용될 수 있다.
변수나 데이터 구조 안에 담을 수 있다.
def example(): print('first-class citizen')var = example
var() # first-class citizen
print(var) # <function example at 0x10613d5f0>
위와 같이 example함수를 변수 var에 할당이 가능하다.
매개변수로 전달이 가능하다
def example(): return 'first-class citizen'def example2(func): print(func())
print(func)example2(example)''''''''''''''
first-class citizen
<function example at 0x104ef7320>
''''''''''''''
example함수와 example2 함수가 있는데 example2 함수는 매개변수로 함수를 받는것을 볼 수 있다. example2함수에 example함수를 매개변수로 전달하면 위의 결과가 나온다.
리턴값으로 사용될 수 있다.
def example(): def example2(): return "first-class citizen"
return example2()example()
'''''''''''''''''''
first-class citizen
'''''''''''''''''''
외부함수 example 안에 내부함수 example2 가 있는것을 볼 수 있다. 이때 example의 리턴값으로 example2를 사용 할 수 있다.