build my life

[Python] 클로저(Closure)와 콜백함수(Callback) 본문

Python

[Python] 클로저(Closure)와 콜백함수(Callback)

dalovee 2022. 8. 8. 14:40
728x90

클로저(Closure)

  • 함수 안에 내부 함수를 만들 수 있음
  • 내부 함수 밖에 있는 지역변수를 기억하고 있다가 내부 함수를 실행할때 기억한 지역변수를 처리한다.
def outer_func(outer_param):
	a = 10
    def inner_func(): # a변수와 outer_param 파라미터 접근 가능!
    	# outer_param에 대해서 처리
        pass

 

예시)

def outer_func(a, b):
    def inner_func(a, b):
        return a+b
    return inner_func


result = outer_func(10,20)
result # 내부 함수의 주소값이 저장되어 있다. ex)<function outer_func.<locals>.inner_func at 0x7f0f1413f3b0>

result() # 내부함수 실행 --> output : 30

 

출처 :https://dojang.io/mod/page/view.php?id=2366

 

콜백함수(Callback)

  • 함수의 인자로 사용되는 함수
#콜백함수 이용한 함수 정의
def convert_int(callback, a, b):
	a = int(a)
    b = int(b)
    
    return callback(a, b)



def add(a, b):
	return a + b

def sub(a, b):
	return a - b
    
    
    
convert_int(add, 3, 4) # 7
convert_int(sub, 6.5, 3) # 3

이 두가지 개념은 다음 번에 배울 데코레이터를 이해하는데 아주 중요한 개념들이다!!

꼭꼭 복습해서 개념을 잘 정리해야겠다.

728x90