Choose a default theme

You can change your theme from the menu

클로저

클로저는 함수와 그 함수가 사용하는 바깥 렉시컬 환경의 연결을 함께 다루는 개념이다. 바깥 함수 호출이 끝난 뒤에도 필요한 환경을 참조할 수 있다.

원리

내부 함수가 외부 범위의 이름을 사용하면 함수의 코드만으로 설명되지 않는 문맥이 생긴다. 언어마다 값을 복사하거나 변수 연결을 유지하는 규칙이 다르다.

예시

세율을 받는 함수가 가격을 받아 세금을 계산하는 내부 함수를 반환하도록 만들면, 서로 다른 세율을 기억하는 계산기를 만들 수 있다.

주의할 점

Python의 클로저가 이름을 정의 당시의 값으로 무조건 고정하는 것은 아니다. 반복문에서 만든 함수들이 같은 바깥 변수를 참조하는 경우 늦은 이름 해석을 주의한다.

참고 자료