본문 바로가기
python

Decorator

by hyundy 2021. 10. 21.

데코레이터란?

사전적 의미로 꾸며주는 것 이라는 의미이다.  일단 코드부터 살펴 보자 

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