Python 일급객체(FIRST-CLASS CITIZEN)

일급 객체(FIRST-CLASS CITIZEN)

홍찬기
2 min readFeb 28, 2020

일급 객체(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를 사용 할 수 있다.

--

--

No responses yet