파이썬의 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 |