[python] 클로저를 사용하여 어떻게 상태를 유지할 수 있나요?
클로저를 사용하여 상태를 유지하는 예제를 살펴보겠습니다.
def counter():
count = 0
def increment():
nonlocal count
count += 1
return count
return increment
# 클로저 함수를 생성합니다.
counter_func = counter()
# 상태 유지 및 조작을 통해 호출할 때마다 숫자가 증가합니다.
print(counter_func()) # Output: 1
print(counter_func()) # Output: 2
print(counter_func()) # Output: 3
위 예제에서 counter
함수는 내부에 count
라는 변수를 선언하고, 이 변수를 조작하는 increment
함수를 정의합니다. increment
함수는 nonlocal
키워드를 사용하여 count
변수를 참조하고 수정할 수 있도록 지정합니다.
counter
함수를 호출하여 counter_func
라는 클로저 함수를 반환받습니다. counter_func
함수를 호출할 때마다 내부의 count
변수가 조작되어, 상태가 유지되고 숫자가 증가하게 됩니다.
클로저를 사용하면 함수와 상태를 하나의 단위로 캡슐화하여 유용한 패턴을 구현할 수 있습니다. 클로저를 자유롭게 사용하면 상태를 유지하고 공유하는 데 편리하게 활용할 수 있습니다.
참고자료: