Scribbling

<Python> 클로저 본문

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))

 

'Computer Science > Python' 카테고리의 다른 글

<Python> 정규표현식  (0) 2021.11.09
<Python> Decorator  (0) 2021.11.09
<Python> Iterator, Generator  (0) 2021.11.09
<Python> Class 파헤치기  (0) 2021.10.28
기본 자료구조 / 알고리즘 정리  (0) 2021.08.16