Computer Science/Python
<Python> 클로저
focalpoint
2021. 10. 28. 19:31
클로저는 간단히 말해 함수 안에 함수를 만드는 것이다.
클로저를 사용하는 이유는 크게 두가지이다.
1) 코드와 지역 변수를 묶어서 사용 가능하다.
2) 지역 변수를 숨기고 싶을 때 사용한다.
아래는 클로저의 예시이다.
- 함수가 종료되어도 a, b 값이 유지되는 것을 확인할 수 있다.
- nonlocal keyword를 이용하여 지역 변수의 변경이 가능하다.
def line(a, b):
total = 0
def get_value(x):
nonlocal total
total += a * x + b
print('현재 누적 합: ' + str(total))
return a * x + b
return get_value
c = line(1, 2)
print(c(1))
print(c(2))
print(c(3))
c = line(2, 4)
print(c(1))
print(c(2))
print(c(3))