본문 바로가기

Python/Python 잡지식

Python기본 _ 데코레이터

이번 포스팅은 함수의 시작과 끝, 혹은 함수의 내용들을 살펴볼 수 있는 '데코레이터'라는 방식에 대해서 살펴본다. 함수가 시작되고 끝나는지, 변수가 뭐가 들어가는지 등.... 의 대해서 알아보고 싶은 것들은 우선 함수로 만들고, 해당 함수를 @와 덧붙여서 지정해주면, 함수가 출력될때 해당 내용도 같이 출력되게 된다

 

모르고 있었던 사실이었는데, 굉장히 유용할 것 같다.

 

  def print_info(func):

    def wrapper(*args, **kwargs):
        print('Start')
        result = func(*args, **kwargs)
        print('End')
        return result
    return wrapper

@print_info
def add_num(a, b):
    return a+b

r = add_num(10,20)
print(r)

def print_more(func):
    def wrapper(*args, **kwargs):
        print('func: ', func.__name__)
        print('args: ', args)
        print('kwargs: ', kwargs)
        result = func(*args, **kwargs)
        print(result)
        return result
    return wrapper

@print_more
def add_num(a,b):
    return a+b

'Python > Python 잡지식' 카테고리의 다른 글

Python기본 _ 사전형 내포표기  (0) 2020.01.23
Python기본 _ 람다  (0) 2020.01.23
Python 기본 _ **kwargs  (0) 2020.01.19
Python기본 _ *args  (0) 2020.01.19
Python기본 _ items()  (0) 2020.01.15