python
함수 장식자 decorator
bono.html
2022. 10. 6. 12:54
함수 장식자 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())
안녕반가워홍길동
안녕반가워고길동