데코레이터란?
사전적 의미로 꾸며주는 것 이라는 의미이다. 일단 코드부터 살펴 보자
def decorator_function(original_function):
def wrapper_function():
print("실행 전입니다.")
original_function()
print("실행 끝났습니다.")
return wrapper_function
@decorator_function
def display():
print('display 함수가 실행됐습니다.')
#decorated_display = decorator_function(display)
display()
firlst-class function , closure 를 안다면 익숙한 코드일 것이다.
다른점은 주석처리 된 부분으로 사용 하나 display 함수 위에 @decorator_function 을 사용 하나 이다.
주석을 제거 하고 테스트 해보면 같은 결과 값이 출력 되는걸 알수 있다.
코드에 매개변수(parameter)를 추가해서 사용 할수도 있다.
def decorator_function(original_function):
def wrapper_function(*args, **kwargs):
print("실행 전입니다.")
original_function(*args, **kwargs)
print("실행 끝났습니다.")
return wrapper_function
@decorator_function
def display(msg):
print(msg)
#decorated_display = decorator_function(display)
display("hi")
'python' 카테고리의 다른 글
파이썬 메모리 관리 (0) | 2021.10.29 |
---|---|
*args, **kwargs (0) | 2021.10.21 |
Closure (0) | 2021.10.21 |
first_class function (0) | 2021.10.21 |
python package pandas (0) | 2021.10.08 |