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 |