python - 데코레이터 (Decorator)

category python 2021. 11. 8. 21:14
728x90
반응형

데코레이터란?

  • 어떤 함수를 받아 명령을 추가한 뒤 이를 다시 함수의 형태로 반환하는 함수.
  • 어떤 함수의 내부를 수정하지 않고 기능에 변화를 주고 싶을 때 사용한다.
  • 말그대로 다른 함수를 꾸며주는 함수이다.

데코레이터 구조

def 데코레이터이름(func): 
    def 내부함수이름(*args, **kwargs):
        기존 함수에 추가할 명령
        return func(*args, **kwargs)
    return 내부함수이름

예) 피보나치 수열

from collections import defaultdict

def recursive(func):
    result = defaultdict(int)
    def wrapper(n):         
        if n in result:
            return result[n]        
        result[n] = func(n)  
        return result[n]
    return wrapper
        
@recursive
def fibo(n):      
    if n == 1 or n == 2:
        return 1
    return fibo(n - 1) + fibo(n - 2)
728x90
반응형

'python' 카테고리의 다른 글

Python 클린코드  (0) 2023.12.14
python __str__ vs __repr__ 차이점  (0) 2023.08.05
python - 힙 큐 (heapq)  (0) 2020.12.22
python - functools  (0) 2020.12.18
python - startswith, endswith  (0) 2020.12.18