파이썬 decorator
Code Snippets 2021. 4. 22. 11:36데코레이터는 말로 표현하기 참 어려운 패턴인데, 어쨌든 공통되는 코드를 '템플릿화' 하고 중복으로 작성하지 않기 위하여 사용한다고 보면 된다. 함수의 실행시간을 나타내기 위하여 데코레이터 함수를 적용해볼 수 있다.
'코드를 바꾸지 않고 기능을 추가하거나 수정하고 싶을 때 사용하는 파이썬 문법'이라고 소개된 글도 봤지만, 파이썬에서는 비록 @를 이용해서 애트리뷰트로 데코레이터 패턴을 사용하기는 하지만 이건 파이썬 문법이 아니다. 프로그래밍 언어에 상관없이 적용 가능한 패턴일 뿐, 문법이 아니당.
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print("running time : {}", format(end_time - start_time))
return result
return wrapper
@timer # 이 녀석이 위에 선언된 함수
def test2(num1, num2):
result = 0
for num in range(num1, num2 + 1):
result += num
return result
'Code Snippets' 카테고리의 다른 글
파이썬 클래스 getter/setter, property, mangling (0) | 2021.04.28 |
---|---|
파이썬 list comprehension (0) | 2021.04.28 |
파이썬 map, filter, reduce 함수 (0) | 2021.04.22 |
쥬피터 노트북 명령어 정리 (0) | 2021.04.20 |
MySQL Multiple Insert SQL (0) | 2021.01.31 |