Python 타이머 인 스 턴 스 코드

5191 단어 python타이머timer
실제 응용 에서 우 리 는 항상 타 이 머 를 사용 하여 사건 을 촉발 시 켜 야 한다.Python 에 서 는 스 레 드 를 통 해 타이머 timer 를 실현 하 는데 사용 이 매우 간단 합 니 다.예시 보기:

import threading
def fun_timer():
  print('Hello Timer!')
timer = threading.Timer(1, fun_timer)
timer.start()
출력 결과:

Hello Timer!
Process finished with exit code 0
한 번 만 출력 하면 프로그램 이 끝 납 니 다.분명히 우리 가 원 하 는 결과 가 아 닙 니 다.Timer 클래스 의 해석 적 설명 보기:

"""Call a function after a specified number of seconds"""
한 동안 후에 함 수 를 호출 했 지만,이 함 수 를 순환 적 으로 호출 하 겠 다 고 는 말 하지 않 았 다.따라서 다음 과 같이 수정 합 니 다.

def fun_timer():
  print('Hello Timer!')
  global timer
  timer = threading.Timer(5.5, fun_timer)
  timer.start()

timer = threading.Timer(1, fun_timer)
timer.start()
출력 결과:

Hello Timer!
Hello Timer!
Hello Timer!
Hello Timer!
............
타이머 가 정상적으로 작 동 하 다.
Python 타 이 머 를 사용 할 때 다음 과 같은 네 가지 측면 에 주의해 야 합 니 다.
(1)타이머 구조 함 수 는 주로 2 개의 매개 변수 가 있 는데 첫 번 째 매개 변 수 는 시간 이 고 두 번 째 매개 변 수 는 함수 이름 이 며 첫 번 째 매개 변 수 는 얼마나 시간 을 표시 한 후에 뒤의 두 번 째 매개 변수 가 가리 키 는 함 수 를 호출 합 니까?두 번 째 매개 변 수 는 함수 대상 입 니 다.매개 변 수 를 전달 하고 함수 명(예 를 들 어 funtimer)이 대상 을 표시 합 니 다.함수 실행 문 으로 쓸 수 없습니다 funtimer(),그렇지 않 으 면 잘못 보고 할 수 있 습 니 다.type 으로 보면 둘 의 차 이 를 알 수 있 습 니 다.

print(type(fun_timer()))
print(type(fun_timer))
출력:

Hello Timer!
<class 'NoneType'>
<class 'function'>
(2)타이머 실행 함수 내부 에서 타이머 구 조 를 반복 해 야 합 니 다.타이머 구조 후 1 회 만 실행 하고 순환 적 으로 호출 해 야 하기 때 문 입 니 다.
(3)타이머 간격 단 위 는 초 이 고 부동 소수점 일 수 있 습 니 다.예 를 들 어 5.5,0.02 등 함수 fun 을 실행 하고 있 습 니 다.timer 내부 와 외부 에서 주 는 값 은 다 를 수 있 습 니 다.전례대로 fun 처음 실행timer 는 1 초 후,뒤쪽 은 5.5 초 후에 실 행 됩 니 다.
(4)cancel 을 사용 하여 타이머 작업 을 중단 할 수 있 습 니 다.다음 과 같 습 니 다.

# -*- coding: utf-8 -*-
import threading
import time
def fun_timer():
  print('Hello Timer!')
  global timer
  timer = threading.Timer(5.5, fun_timer)
  timer.start()
timer = threading.Timer(1, fun_timer)
timer.start()
time.sleep(15) # 15       
timer.cancel()
출력:

Hello Timer!
Hello Timer!
Hello Timer!
Process finished with exit code 0
다음은 Python 이 쓴 타이머 입 니 다.시간 정 도 를 조절 하여 공유 할 수 있 습 니 다.

# -* coding: utf-8 -*-
import sys
import os
import getopt
import threading
import time
def Usage():
	usage_str = '''  :
	\t   
	\timer.py -h        ,     --help  
	\timer.py -d num         (      )
	\t               --duration=num  
	'''
	print(usage_str)
	
def args_proc(argv):
	'''       '''
	try:
		opts, args = getopt.getopt(sys.argv[1:], 'hd:', ['help', 'duration='])
	except getopt.GetoptError as err:
		print('  !              。
') Usage() sys.exit(255) if len(opts) < 1: print(' : 。') Usage() sys.exit(255) usr_argvs = {} for op, value in opts: if op in ('-h', '--help'): Usage() sys.exit(1) elif op in ('-d', '--duration'): if int(value) <= 0: print(' ! %s 。
' % (value)) Usage() sys.exit(2) else: usr_argvs['-d'] = int(value) else: print('unhandled option') sys.exit(3) return usr_argvs def timer_proc(interval_in_millisecond): loop_interval = 10 # , ( ), , , t = interval_in_millisecond / loop_interval while t >= 0: min = (t * loop_interval) / 1000 / 60 sec = (t * loop_interval) / 1000 % 60 millisecond = (t * loop_interval) % 1000 print('\rThe remaining time:%02d:%02d:%03d...' % ( min, sec, millisecond ), end = '\t\t') time.sleep(loop_interval / 1000) t -= 1 if millisecond != 0: millisecond = 0 print('\rThe remaining time:%02d:%02d:%03d...' % ( min, sec, millisecond ), end = '\t\t') print() # if __name__ == '__main__': usr_argvs = {} usr_argvs = args_proc(sys.argv) for argv in usr_argvs: if argv in ( '-d', '--duration'): timer_proc(usr_argvs[argv]) else: continue
총결산
이상 은 Python 타이머 인 스 턴 스 코드 에 관 한 모든 내용 입 니 다.도움 이 되 기 를 바 랍 니 다.참고:Python 생 성 디지털 이미지 코드 공유,Python 목록 에서 삭제 하 는 세 가지 방법 코드 공유,가장 많이 사용 되 는 Python 딥 러 닝 라 이브 러 리 13 개 소개등 문제 가 있 으 면 언제든지 메 시 지 를 남 길 수 있 습 니 다.여러분 의 교류 참 고 를 환영 합 니 다.

좋은 웹페이지 즐겨찾기