함수를 둘러싼 환경(지역변수 , 코드 등) 을 계속 유지하다가 , 함수들 호출할 때 다시 꺼내서 사용하는 함수를 클로저 라고 한다.
c
에 저장된 함수가 클로저가 된다.
클로저는 데이터를 숨기고 싶을때도 사용하기도 한다.
클로저
는 함수를 둘러싼 환경을 유지했다가 나중에 다시 사용하는 함수를 뜻한다.
클로저의 지역 변수를 변경하고 싶다면 nonlocal
을 사용하면 된다.
하지만 전역 변수를 사용하는 여러 안티 패턴의 경우와 마찬가지로 , 간단한 함수 외에는 어떤 경우라도
nonlocal
을 사용하지 말라고 경고하고 싶다.
특히 함수가 기고 nonlocal
문이 지정한 변수와 대입이 이뤄지는 위치의 거리가 멀면 함수 동작을
이해하기 더 힘들어진다.