Python의 With로 실행 시간 측정
할 수 있게 되는 것
with를 사용하여 시간 측정을 할 수 있게 된다.
Kaggle 등으로 시간을 계측할 때 사용할 수 있다.
참고
메르카리 대회 1위 코드 에서 사용되었습니다.
사용방법
컨텍스트 관리자로 사용하려는 함수 정의 바로 전에 @contextmanager
타이머가 호출되면 초기 시간이 t0에 저장되고 yeild에서 임시 함수를 빠져 나갑니다.
time.sleep(1)의 처리 종료 후에 다시 타이머로 돌아와 초기 시간과의 차분을 출력하고 있다.
qiita.rbfrom contextlib import contextmanager
import time
@contextmanager
def timer(name):
t0 = time.time()
print("start")
yield
print("end")
print(f'[{name}] done in {time.time() - t0:.0f} s')
with timer('process train'):
time.sleep(1)
@contextmanager 의 기재가 없는 경우는 timer 는 contextmanager 로서 동작할 수 없기 때문에 에러가 된다.
컨텍스트 관리자
with 분과 컨텍스트 관리자
컨텍스트 관리자는 코드 블록을 실행하는 데 필요한 입구 및 출구 처리를 처리한다.
이하의 예와 같이, 컨텍스트 매니저 클래스에는, 개시용의 처리와 종료시용의 처리가 기재되어 있다. 따라서 @contextmanager 에서 컨텍스트 매니저로 하면, 시작시와 종료시에 타이머가 불리게 된다. @contextmanager 을 기재하지 않았던 경우는 enter 의 정의가 없기 때문에 에러가 되었다.
참고
Reference
이 문제에 관하여(Python의 With로 실행 시간 측정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asparagasu/items/97c094115b6097a07723
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
메르카리 대회 1위 코드 에서 사용되었습니다.
사용방법
컨텍스트 관리자로 사용하려는 함수 정의 바로 전에 @contextmanager
타이머가 호출되면 초기 시간이 t0에 저장되고 yeild에서 임시 함수를 빠져 나갑니다.
time.sleep(1)의 처리 종료 후에 다시 타이머로 돌아와 초기 시간과의 차분을 출력하고 있다.
qiita.rbfrom contextlib import contextmanager
import time
@contextmanager
def timer(name):
t0 = time.time()
print("start")
yield
print("end")
print(f'[{name}] done in {time.time() - t0:.0f} s')
with timer('process train'):
time.sleep(1)
@contextmanager 의 기재가 없는 경우는 timer 는 contextmanager 로서 동작할 수 없기 때문에 에러가 된다.
컨텍스트 관리자
with 분과 컨텍스트 관리자
컨텍스트 관리자는 코드 블록을 실행하는 데 필요한 입구 및 출구 처리를 처리한다.
이하의 예와 같이, 컨텍스트 매니저 클래스에는, 개시용의 처리와 종료시용의 처리가 기재되어 있다. 따라서 @contextmanager 에서 컨텍스트 매니저로 하면, 시작시와 종료시에 타이머가 불리게 된다. @contextmanager 을 기재하지 않았던 경우는 enter 의 정의가 없기 때문에 에러가 되었다.
참고
Reference
이 문제에 관하여(Python의 With로 실행 시간 측정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asparagasu/items/97c094115b6097a07723
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from contextlib import contextmanager
import time
@contextmanager
def timer(name):
t0 = time.time()
print("start")
yield
print("end")
print(f'[{name}] done in {time.time() - t0:.0f} s')
with timer('process train'):
time.sleep(1)
with 분과 컨텍스트 관리자
컨텍스트 관리자는 코드 블록을 실행하는 데 필요한 입구 및 출구 처리를 처리한다.
이하의 예와 같이, 컨텍스트 매니저 클래스에는, 개시용의 처리와 종료시용의 처리가 기재되어 있다. 따라서 @contextmanager 에서 컨텍스트 매니저로 하면, 시작시와 종료시에 타이머가 불리게 된다. @contextmanager 을 기재하지 않았던 경우는 enter 의 정의가 없기 때문에 에러가 되었다.
참고
Reference
이 문제에 관하여(Python의 With로 실행 시간 측정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/asparagasu/items/97c094115b6097a07723텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)