Python

Python-Decorator(데코레이터)

baecode 2022. 5. 16. 19:18
반응형

Decorator

함수의 내부를 수정하지 않고 기능에 변화를 주고 싶을 때 사용한다 
일반적으로 함수의 전처리나 후처리에 대한 필요가 있을때 사용을 한다
또한 데코레이터를 이용해, 반복을 줄이고 메소드나 함수의 책임을 확장한다

@ 으로 시작하는 것이 데코레이터들이다

 

def trace(func):                             # 호출할 함수를 매개변수로 받음
    def wrapper():
        print(func.__name__, '함수 시작')    # __name__으로 함수 이름 출력
        func()                               # 매개변수로 받은 함수를 호출
        print(func.__name__, '함수 끝')
    return wrapper                           # wrapper 함수 반환
 
@trace    # @데코레이터
def hello():
    print('hello')
 
@trace    # @데코레이터
def world():
    print('world')
 
hello()    # 함수를 그대로 호출
world()    # 함수를 그대로 호출

'''
실행 결과
hello()

hello 함수 시작
hello
hello 함수 끝

world()

world 함수 시작
world
world 함수 끝

'''
반응형