Make Timer function in python
시간 측정 decorator 함수 만들기
import time
1 | import time |
실행 시간을 확인 하는 함수 만들기
1 | def timer(func): |
가변 매개 변수 args(*)
- 함수를 정의할때 앞에 *가 붙어 있으면, 정해지지 않은 수의 매개변수를 받겠다는 의미
- 가변 매개변수는 입력 받은 인수를 튜플형식으로 packing 한다.
- 일반적으로 *args (arguments의 약자로 관례적으로 사용) 를 사용한다.
- 다른 매개 변수와 혼용가능
키워드 매개변수 kwargs(**)
- 함수에서 정의되지 않은 매개변수를 받을 때 사용되며, 딕셔너리 형식으로 전달.
- 일반 매개변수, 가변 매개변수와 함께 일는 경우 순서를 지켜야함 (일반>가변>키워드 순)
- **kwargs (Keyword arguments의 약자로 관례적으로 사용 )
decorator 함수를 이용하여 시간 확인 함수 설정, 실행
1 |
|
out
check_time, Total time is 1.50 sec.
관련 이론들을 아래에 적어 놓았다.
timestamp
:python에서 time은 1970년 1월 1일 0시 0분 0초를 기준으로 경과한 시간을 나타냄time_struct
class- timestamp가 주어 졌을때 날짜와 시간을 알아내기 위한 API 제공
name | value | Ex. |
---|---|---|
tm_year |
year | 1993, 2021 |
tm_mon |
month | 1~12 |
tm_mday |
day | 1~31 |
tm_hour |
hour | 0~23 |
tm_min |
minute | 0~59 |
tm_sec |
second | 0~61 |
tm_wday |
요일 | 0~6 (0 : MON) |
tm_yday |
연중 경과일 | 1~366 |
tm_isdst |
summertime | 0: unapply 1: apply |
time() 함수
- 현재 timestamp 얻기
in
1 | secs = time.time() |
out
1638870356.8049076
- unix timestamp는 소수로 값을 return, 정수 부분이 초 단위.
부가적인 time 함수들
- gmtime() : GMT 기준의
time_struct
type으로 변환in
1
2tm = time.gmtime(secs)
print(tm)out
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=7, tm_hour=9, tm_min=53, tm_sec=5, tm_wday=1, tm_yday=341, tm_isdst=0)
localtime() : 현지 시간대 기준의
time_struct
type으로 변환in
1
2
3
4
5
6
7tm = time.localtime(secs)
print("year:", tm.tm_year)
print("month:", tm.tm_mon)
print("day:", tm.tm_mday)
print("hour:", tm.tm_hour)
print("minute:", tm.tm_min)
print("second:", tm.tm_sec)out
year: 2021
month: 12
day: 7
hour: 18
minute: 53
second: 5ctime() :
요일 월 일 시:분:초 연도
형식으로 출력in
1
string = time.ctime(secs)
out
Tue Dec 7 18:56:03 2021
- strftime() : strftime 과 같은 특정 형식으로 변환가능
- parameter로
time_struct
type data를 받기 때문에 위의 함수들을 사용해서 data를strftime()
으로 넘겨야 함.in
1
2
3tmt = time.localtime(secs)
string = time.strftime('%Y-%m-%d %I:%M:%S %p', tmt)
print(string)out
2021-12-07 07:00:54 PM
- parameter로
인자를 쓰는동안 secs로 계속 썻더니 시간이 계속 올라가고있다 하하하 ^0^
strptime() : strftime
과 같은 특정 포멧의 시간을time_struct
type 으로 변경.in
1
2
3string = '2021-12-07 07:00:54 PM'
tmm = time.strptime(string, '%Y-%m-%d %I:%M:%S %p')
print(tmm)out
time.struct_time(tm_year=2021, tm_mon=12, tm_mday=7, tm_hour=19, tm_min=0,
tm_sec=54, tm_wday=1, tm_yday=341, tm_isdst=-1)sleep() : 일정 시간 동안 시간 지연 시키기
in
1
2
3print("Start-->")
time.sleep(1.5)
print("<--End")out
Start–>
<–End
- time.sleep(sec) : 초 단위로 시간을 지연 시킨다.