파이썬의 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 함수가 호출되면 그 값을 꺼내서 사용한다.