2017-12-01 9 views
1

정렬 기능의 소요 시간을 측정하려고하는데, time.process_time()이 작동하는 데 어려움을 겪고 있습니다.time.process_time() 작업

내 현재 설정은 다음과 같습니다

start = time.process_time() 
insertionsort(n) 
end = time.process_time() 

time = start-end 

내가 이것을 실행, 나는이 오류가 무엇입니까 : 나는이 문제를 해결하려면 어떻게

'float' object has no attribute 'process_time'

를? time.process_time()을 사용하고 싶습니다.

+2

이것이 문제입니다. 'time = start-end'는 표준 라이브러리와 같은 이름으로 변수 이름을 지정하지 않습니다. –

답변

0

문제는 표시하지 않은 코드의 일부입니다. 난 당신이 처음에 time 모듈을 수입한다고 가정하십시오 time 모듈을 참조하는 이름 time를 생성

import time 

합니다.

하지만 나중에 시간 차이를 저장하는 time이라는 변수를 만듭니다. 이 시점에서 이름 time은 모듈이 아니라 차이를 참조합니다. 따라서 time.process_time()을 사용하려고하면 오류가 발생합니다.

>>> import time 
>>> time = -(time.process_time() - time.process_time()) 
>>> time.process_time() 
AttributeError: 'float' object has no attribute 'process_time' 

당신이 time.process_time()를 사용하여 주장하는 경우 가장 좋은 방법은 주위의 시간 차이 저장하는 변수의 이름을 변경하는 것입니다 :

measured_execution_time_insertionsort = start - end 

을하지만 당신은 할 수

이 간단한 조각은 문제를 보여 time 모듈의 process_time 함수를 직접 가져 오십시오.

from time import process_time 

start = process_time() 
insertionsort(n) 
end = process_time() 

time = start - end 

두 가지 방법 모두 이름 충돌을 피할 수 있습니다. 그러나 실행 시간을 측정하려면 timeit 모듈을 사용하는 것이 좋습니다. time 모듈보다 이러한 종류의 작업에 더 적합합니다.