이벤트 일정
sched
모듈의 내용은 매우 간단하며 하나의 클래스만 정의합니다. 일반적인 이벤트 스케줄링 모듈로 사용됩니다. sched
模块内容很简单,只定义了一个类。它用来最为一个通用的事件调度模块。
class sched.scheduler(timefunc, delayfunc)
这个类定义了调度事件的通用接口,它需要外部传入两个参数,timefunc
是一个没有参数的返回时间类型数字的函数(常用使用的如time模块里面的time),delayfunc
应该是一个需要一个参数来调用、与timefunc的输出兼容、并且作用为延迟多个时间单位的函数(常用的如time模块的sleep)。
下面是一个列子:
import sched, time s = sched.scheduler(time.time, time.sleep) # 生成调度器def print_time():print "From print_time", time.time()def print_some_times():print time.time() s.enter(5, 1, print_time, ()) # 加入调度事件# 四个参数分别是:# 间隔事件(具体值决定与delayfunc, 这里为秒);# 优先级(两个事件在同一时间到达的情况);# 触发的函数;# 函数参数;s.enter(10, 1, print_time, ())# 运行s.run()print time.time()if __name__ == '__main__': print_some_times()
看到的输出结果,隔5秒中执行第一个事件,隔10秒后执行第二个事件:
1499259731.99From print_time 1499259736.99From print_time 1499259741.991499259741.99
在多线程场景中,会有线程安全问题,run()函数会阻塞主线程。官方建议使用threading.Timer
类代替:
import timefrom threading import Timerdef print_time():print "From print_time", time.time()def print_some_times():print time.time() Timer(5, print_time, ()).start() Timer(10, print_time, ()).start() time.sleep(11) # 阻塞主线程,等待调度程序执行完毕,再执行后面内容print time.time()if __name__ == '__main__': print_some_times()
Scheduler对象方法
scheduler对象拥有下面这些方法或属性:
scheduler.enterabs(time, priority, action, argument)
加入一个事件,time
参数应该是一个与传递给构造函数的timefunc
函数的返回值相兼容的数值类型。在同一时间到达的事件将按照priority
顺序执行。
执行事件其实就是执行action(argument)
。argument必须是一个包含action
参数的序列。
返回值是一个事件,它可以用于稍后取消事件(请参见cancel()
class sched.scheduler(timefunc, Delayfunc)
이 클래스는 외부 입력이 필요한 이벤트 예약용 인터페이스를 정의합니다. 매개변수, delayfunc
는 timefunc의 출력과 호환되는 하나의 매개변수와 함께 호출되어야 하며 여러 시간 단위를 지연시키는 함수(일반적으로 사용됨) 시간 모듈의 수면으로). 🎜🎜 다음은 예입니다.🎜rrreee🎜 표시되는 출력은 첫 번째 이벤트가 5초마다 실행되고 두 번째 이벤트가 10초마다 실행된다는 것입니다.🎜rrreee🎜멀티 스레드 시나리오에서는 스레드가 있습니다. 안전 문제로 인해 run() 함수는 메인 스레드를 차단합니다. 공식적인 권장 사항은 threading.Timer
클래스: 🎜rrreee🎜Scheduler 개체 메서드🎜🎜 메소드 또는 속성: 🎜scheduler.enterabs(time, 우선 순위, 작업, 인수 )🎜 li>
time
매개변수는 timefunc
함수의 반환 값과 호환되는 숫자 유형입니다. 동시에 도착하는 이벤트는 그에 따라 크기가 조정됩니다. border: 1px solid #eaeaea; background-color: #f8f8f8; border-radius: 3px; 🎜🎜 실행 이벤트는 실제로 실행입니다액션(인수)
인수는 action
매개변수 순서. 🎜🎜 반환 값은 이벤트이며 나중에 이벤트를 취소하는 데 사용할 수 있습니다( 취소()
) 🎜scheduler.enter(delay,priority,action,argument)
이벤트를 지연하도록 예약enterabs()
는 동일합니다. 실제로 내부enterabs
는 delay
个时间单位。除了时间外,其他参数、含义和返回值与enterabs()
的值相同。其实内部enterabs
就是用来被enter
调用。
scheduler.cancel(event)
从队列中删除事件。如果事件不是当前队列中的事件,则该方法将跑出一个ValueError
。
scheduler.empty()
判断队列是否为空。
scheduler.run()
运行所有预定的事件。这个函数将等待(使用传递给构造函数的delayfunc()
函数),然后执行事件,直到不再有预定的事件。
任何action
或delayfunc
都可以引发异常。在这两种情况下,调度器将保持一个一致的状态并传播异常。如果一个异常是由action
引起的,就不会再继续执行run()
- scheduler.cancel(event)🎜🎜 대기열에서 이벤트를 삭제합니다. 이벤트가 현재 대기열의 이벤트가 아닌 경우 이 메서드는 em; white-space: pre-wrap; border: 1px solid #eaeaea; background-color: #f8f8f8; 인라인;">값 오류. 🎜🎜🎜🎜scheduler.empty()🎜🎜🎜🎜 대기열이 비어 있는지 확인합니다. 🎜🎜🎜🎜scheduler.run()🎜🎜🎜🎜 예정된 모든 이벤트를 실행합니다. 이 함수는 대기합니다(
delayfunc()
함수) 그런 다음 이벤트가 없어질 때까지 실행합니다. 더 많은 예약 이벤트. 🎜🎜 Anyaction
또는run(). 🎜🎜🎜🎜scheduler.queue🎜
읽기 전용 속성, 예정된 이벤트 목록을 반환합니다(도착 이벤트별로 정렬). 각 이벤트에는 time
、priority
、action
、argument
组成的namedtuple
가 있습니다.
위 내용은 Python 표준 라이브러리의 sched 모듈 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

제한된 시간에 Python 학습 효율을 극대화하려면 Python의 DateTime, Time 및 Schedule 모듈을 사용할 수 있습니다. 1. DateTime 모듈은 학습 시간을 기록하고 계획하는 데 사용됩니다. 2. 시간 모듈은 학습과 휴식 시간을 설정하는 데 도움이됩니다. 3. 일정 모듈은 주간 학습 작업을 자동으로 배열합니다.

Python은 게임 및 GUI 개발에서 탁월합니다. 1) 게임 개발은 Pygame을 사용하여 드로잉, 오디오 및 기타 기능을 제공하며 2D 게임을 만드는 데 적합합니다. 2) GUI 개발은 Tkinter 또는 PYQT를 선택할 수 있습니다. Tkinter는 간단하고 사용하기 쉽고 PYQT는 풍부한 기능을 가지고 있으며 전문 개발에 적합합니다.

Python은 데이터 과학, 웹 개발 및 자동화 작업에 적합한 반면 C는 시스템 프로그래밍, 게임 개발 및 임베디드 시스템에 적합합니다. Python은 단순성과 강력한 생태계로 유명하며 C는 고성능 및 기본 제어 기능으로 유명합니다.

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 같은 작업에 적합합니다.

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
