Home [Python] Closure
Post
Cancel

[Python] Closure

클로저(Closure)란?

어떤 함수의 내부 함수가 외부 함수의 변수(*프리 변수)를 참조할 때, 외부 함수가 종료된 후에도 내부 함수가 외부 함수의 변수를 참조할 수 있도록 어딘가에 저장하는 함수를 의미(프리 변수(free variable)는 어떤 함수에서 사용되지만 그 함수 내부에서 선언되지 않은 변수를 의미), 또는 자신을 둘러싼 스코프(네임스페이스)의 상태 값을 기억하는 함수

#####참고네임스페이스: 내부 식별자(형식, 함수, 변수 등의 이름)를 구분할 수 있는 범위. global, nonlocal, local

클로저 함수 충족 조건

  1. 어떤 함수의 내부 함수일 것
  2. 그 내부 함수가 외부 함수의 변수를 참조할 것
  3. 외부 함수가 내부 함수를 리턴할 것

Screenshot 2023-06-30 at 11 46 14 AM

클로저의 특징

클로저 함수가 자신을 둘러싼 스코프의 상태 값을 기억하므로,중첩된 내부함수가 외부 함수의 변수를 참조하기에, 두 함수의 환경을 저장하는 클로저가 생성된다.

클로저의 장단점

### 장점

  1. 외부 함수가 삭제되어도 내부함수(클로저)에서는 외부 함수 범위에 있는 변수에 접근이 가능
  2. 전역 변수 남용을 방지할 수 있음

### 단점

  1. 클로저가 실행될 때마다 각자의 스코프를 유지해야 하기 때문에 메모리가 상대적으로 많이 사용됨
This post is licensed under CC BY 4.0 by the author.