함수 장식자 decorator
함수 장식자는 해당 주함수를 감싼 함수라고 보면 좋다.
보통 함수의 추가기능을 구현하고 싶을때 사용한다.
예시의 1번 방식과 2번 방식을 비교해보면 이해하기 쉽다
# 함수 장식자 (decorator : @ - meta 기능이 있다)
# 장식자는 또 다른 함수를 감싼 함수다. 주함수가 호출되면 그의 반환값이 장식자에게 건네진다.
# 그러면 장식자는 포장된 함수로 교체하여 함수를 돌려준다.
def make2(fn):
return lambda:'안녕' + fn()
def make1(fn):
return lambda:'반가워' + fn()
def hello():
return '홍길동'
# 1번 방식
hi = make2(make1(hello))
print(hi())
print()
# 2번 방식
@make2
@make1
def hello2():
return '고길동'
print(hello2())
안녕반가워홍길동
안녕반가워고길동
'python' 카테고리의 다른 글
| module - 표준모듈 (0) | 2022.10.06 |
|---|---|
| 재귀함수(Recursive function), factorial (0) | 2022.10.06 |
| 일급객체와 일급함수, 람다함수 (0) | 2022.10.06 |
| 클로저(closure) (0) | 2022.10.06 |
| 매개변수와 인자 , 가변인수 (0) | 2022.10.06 |