본문 바로가기
programming language/Python

Python 데코레이터 유용한 예제 lru_cache

by __observer__ 2022. 10. 12.
반응형

저는 개인적인 코딩을 할 때는 사실 Python 데코레이터를 거의 사용해 본 적이 없었습니다. 아래 글의 예제에서 설명하는 것과 같이 클래스 사용시 classmethod, staticmethod 정도가 제가 사용해 본 파이썬 데코레이터 전부였던 것 같습니다.

https://dojang.io/mod/page/view.php?id=2427

그런데 코딩 관련 유튜브를 보다 보니 아래 동영상에서 데코레이터 사용의 굉장히 유용한 예제를 발견할 수 있었습니다.

위 동영상은 피보나치 코드 예제인데~ 재귀함수 속도 향상을 위해서 이전 값을 저장하는 경우 functools 모듈의 cache, lru_cache 를 사용하여 조금 더 편리하게 구현하는 예제입니다.

원저자의 코드는 아래 주소에서 확인할 수 있습니다.

https://github.com/mCodingLLC/VideosSampleCode/blob/master/videos/030_the_single_most_useful_decorator_in_python/cache_decorator.py

현재 저는 파이썬 3.8 버전을 사용하고 있는데 'cache' 의 경우 아래와 같이 에러가 나더군요.

ImportError: cannot import name 'cache' from 'functools'

그래서 lru_cache 만 임포트를 해서 코드를 실행해 봤고, 위 동영상에서 본 것과 같이 굉장히 빠르게 실행 되는 것을 확인할 수 있었습니다.

데코레이터의 유용성에 대해서 알게 돼서 좋았네요.

반응형

댓글