[Python] Function - Decorator

가비·2020년 9월 30일
0

[Python] Function

목록 보기
4/5

Decorator란? 특정 함수를 실행하기 전에 강제적으로 다른 함수가 먼저 실행되도록 하는 기능으로 특정 함수를 수정하지 않은 상태에서 추가 기능을 구현할 때 사용한다.

decorator

def is_paid_user(func):         # 호출할 함수를 매개변수로 받음
    user_paid = True
    def wrapper():              # 호출할 함수를 감싸는 함수
        if user_paid:          
            func()              # 매개변수로 받은 함수 호출
        else:
            return    
    return wrapper
    
@is_paid_user                    # 데코레이터 지정
def jackpot_stock_information(): # 함수가 호출되면 파이썬이 아래와 같이 변환해서 호출
    코드                          # decorated_function = is_paid_user(jackpot_stock_information)
                                 # decorated_function()
  • decorator의 기능을 다르게 설명하자면 chain of functions. 즉, 여러개의 함수가 연속적으로 호출되게 해준다. 그러므로 중첩 함수를 리턴하는 함수만 decorator 함수로 사용될 수 있다.

0개의 댓글