내용으로 건너뛰기
Out of the Box
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
Fold/unfold all
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
•
ai_platform
python:decorator
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Python: Decorator ====== ===== 함수 실행시간 측정 ===== <code python> from functools import wraps def elapsed_time(func): import time @wraps(func) def wrapped(*args, **kwargs): start_time = time.perf_counter() returns = func(*args, **kwargs) end_time = time.perf_counter() print('{} -> elased time: {:.3f}'.format(func.__name__, end_time - start_time)) return returns return wrapped @elapsed_time def test_sleep(t): import time time.sleep(t) return True </code> ====== Logger wrapping ====== terminal 창의 마지막 줄에 elapsed time을 계속 표시함 <code python> def logger_info_with_state_bar(func): global start_time def wrapped(msg): columns = os.get_terminal_size().columns print(Fore.RESET + Back.RESET + ' ' * (columns - 1), end='\r') func(msg) status = 'elapsed time: {}'.format(time.time() - start_time) if len(status) < (columns - 1): status += ' ' * (columns - len(status) - 1) print(Back.GREEN + Fore.BLACK + status + Fore.RESET + Back.RESET, end='\r') return wrapped logger.info = logger_info_with_state_bar(logger.info) </code> ===== Decorator with parameters ===== <code python> def decorator_factory(argument): def decorator(function): def wrapper(*args, **kwargs): funny_stuff() something_with_argument(argument) result = function(*args, **kwargs) more_funny_stuff() return result return wrapper return decorator # https://stackoverflow.com/questions/5929107/decorators-with-parameters </code> ===== 튜토리얼 ===== * http://www.hanbit.co.kr/network/category/category_view.html?cms_code=CMS5689111564
python/decorator.txt
· 마지막으로 수정됨: 2024/03/23 02:42 저자
127.0.0.1
문서 도구
문서 보기
이전 판
역링크
Fold/unfold all
맨 위로