함수를 꾸며주는 함수
(인자)로 함수를 받고
받은 함수값의 위아래에 새로운 명령을 더해
꾸며진 함수를 리턴한다.
다음 2가지는 모두 같은 결과를 리턴한다.
# deco1.py
def wrapper(function):
def decorated_func():
print("베이직 전에 실행")
function()
print("베이직 후에 실행")
return decorated_func
def basic():
print("---나는 베이직 펑션---")
# basic()
new_func = wrapper(basic)
new_func() # 호출: basic을 wrapper로 감싼 함수
베이직 전에 실행
---나는 베이직 펑션---
베이직 후에 실행
# deco2.py
def wrapper(function): # basic
def decorated_func():
print("베이직 전에 실행")
function() # basic
print("베이직 후에 실행")
return decorated_func
@wrapper # wrapper(basic) 처리
def basic():
print("--나는 베이직 펑션--")
basic() # wrapper(basic) 호출
베이직 전에 실행
--나는 베이직 펑션--
베이직 후에 실행