PYTHON · 함수
클로저 심화
클로저(closure)는 외부 함수의 변수를 기억하는 내부 함수입니다. 상태를 캡슐화하는 강력한 패턴입니다.
함수중급closure클로저nonlocal캡슐화
핵심 설명
클로저(closure)는 외부 함수의 변수를 기억하는 내부 함수입니다. 상태를 캡슐화하는 강력한 패턴입니다.
Python code
def make_counter(start=0):
count = start
def counter():
nonlocal count
count += 1
return count
return counter
c = make_counter(10)
print(c()) # 11
print(c()) # 12
# 클로저로 설정 캡처
def make_formatter(fmt):
def formatter(value):
return f"{value:{fmt}}"
return formatter
as_percent = make_formatter(".1%")
as_currency = make_formatter(",.0f")
print(as_percent(0.856)) # 85.6%
print(as_currency(1234567)) # 1,234,567
# 클로저 내부 변수 확인
print(as_percent.__closure__[0].cell_contents) # .1%학습 팁
클로저 내부에서 외부 변수를 변경하려면 nonlocal 키워드가 필요합니다.
주의할 점
루프 안에서 클로저를 만들면 모든 클로저가 같은 변수를 참조합니다. 기본 인자로 값을 캡처하세요: lambda x=x: x.
자주 묻는 질문
클로저 심화란 무엇인가요?
클로저(closure)는 외부 함수의 변수를 기억하는 내부 함수입니다. 상태를 캡슐화하는 강력한 패턴입니다.
클로저 심화 학습 시 주의할 점은 무엇인가요?
루프 안에서 클로저를 만들면 모든 클로저가 같은 변수를 참조합니다. 기본 인자로 값을 캡처하세요: lambda x=x: x .
Continue Learning
Python 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.