클로저는 함수의 재사용성을 사용하여 만든 함수입니다. python의 디자인 패턴과 관련된 요소로서 단순히 python에서만 쓰이는 것이 아닌 다른 언어에서도 디자인 패턴이 존재합니다.
입력
def 승수(x, y):
return x ** y
print(승수(2, 3))
print(승수(3, 2))
print(승수(4, 3))
출력
8
16
32
그런데 이 함수를 굉장히 많이 사용할 것이라 하나의 패턴으로 패턴화 하고 싶다면 어떻게 해야할까요?
입력
def 승수(n):
def 함수(x):
return x ** n
return 함수
a = 승수(3) #a는 승수라는 함수를 가지게 됩니다.
b = 승수(4)
c = 승수(5)
a(2) #
b(2)
c(2)
출력
8
16
32
이렇게 함수의 재사용성을 좀 더 다르게 해서 만든 것이 closer입니다.