Backend/Python

[Python] closure

sangwonYoon 2023. 3. 7. 00:31

파이썬의 closure에 대해 알아보자.


def print_msg(msg):
	def printer(): # inner function
		print(msg)
	return printer # 함수를 return, 괄호 붙이면 안됨

another = print_msg("Hello, Python")
another()
# 출력: Hello, Python

함수 printer의 입장에서 지역 변수 msg는 자신의 외부에 있는 변수이다.

그러나, 위 코드와 같이 inner function (위 코드에서의 printer 함수)을 반환하게 되면 print_msg 함수가 종료되더라도 msg의 값이 유지된 채, printer 함수가 호출되면 그 값을 꺼내서 사용한다.

'Backend > Python' 카테고리의 다른 글

[Python] 모듈과 패키지  (0) 2023.03.08
[Python] decorator  (0) 2023.03.07
[Python] 파이썬 class의 특징  (0) 2023.03.07
[Python] asterisk  (0) 2023.03.07
[Python] generator  (0) 2023.03.07