2021년/개발공부

Python decorator

위지원 2021. 4. 12. 15:08

Python decorator

decorator를 쓰면 wrapper를 이용해 손쉽게 코드 수정이 가능해짐 완벽한 형태는 아래와 같음.

마치 스프링의 AOP가 생각난다.. 

def decorator(func):
    @wraps(func)#원본 함수의 메타정보가 데코레이터의 메타정보로 대체되는 것을 방지하기 위
    def wrapper(*args, **kwargs):
        print("start")
        value = func(*args, **kwargs)#원본 함수 파라미터를 그대로 받기 위해
        print("end")
        return value #원본 함수 return을 받기 위해
    return wrapper

@decorator
def test_func(msg):
    print("test_func %s" % msg)
    return "YES~!"

res = test_func("one two three!")
print(res)

www.daleseo.com/python-decorators/

 

[파이썬] 데코레이터 기본 사용법

Engineering Blog by Dale Seo

www.daleseo.com