美文网首页
Python - Display the current dat

Python - Display the current dat

作者: 青池烟雨莲 | 来源:发表于2018-06-04 18:32 被阅读0次
    import asyncio
    import datetime
    
    def display_date(end_time, loop):
        print(datetime.datetime.now())
        if (loop.time() + 1.0) < end_time:
            loop.call_later(1, display_date, end_time, loop)
        else:
            loop.stop()
    
    loop = asyncio.get_event_loop()
    
    # Schedule the first call to display_date()
    end_time = loop.time() + 5.0
    loop.call_soon(display_date, end_time, loop)
    
    # Blocking call interrupted by loop.stop()
    loop.run_forever()
    loop.close()
    
    定义函数 display_date ,
        位置参数1 end_time,期望一个 float 类型的事件循环对象内部时间
        位置参数2 loop,期望一个事件循环对象的引用
        
        打印当前时间
        如果事件循环对象的当前内部时间在 1 秒钟之后仍早于 end_time 持有的时间,则
            调用 loop 变量引用的 even loop 对象之 call_later 方法
                位置参数1 delay 给定延时时长,单位秒,类型为 int/float
                位置参数2 callback 设置为 display_date 函数自身
                可选位置参数 end_time 与 loop 即为 display_date 函数自身参数
                该方法安排计划在给定的时间间隔后调用 callback
                其返回的 asyncio.Handle 实例不留存
        如若不然,则
            调用 loop 变量引用的 even loop 对象之 stop 方法
                停止事件循环
                
    调用模组级方法 get_event_loop 获取以全局策略管理的事件循环对象
        并将对象的引用赋予变量 loop
        
    调用 loop 变量引用的 even loop 对象之 time 方法
        获得事件循环对象的当前内部时间增加5秒间隔后
        赋值予变量 end_time
        
    调用 loop 变量引用的 even loop 对象之 call_soon 方法
        位置参数1 callback 设置为 display_date 函数对象的引用
        可选位置参数 end_time 与 loop 为 display_date 函数の参数
        该方法安排计划一有可能即刻调用 callback
        其返回的 asyncio.Handle 实例不留存
        
    调用 loop 变量引用的 even loop 对象之 run_forever 方法
        启动事件循环
        
    调用 loop 变量引用的 even loop 对象之 close 方法
        关闭事件循环
    

    代码执行过程小结:

    引入 asyncio 模块,准备回调函数,获取事件循环对象,获得该对象即获得了 AbstractEventLoop 接口的访问能力,随后使用接口注册回调函数安排调用计划,之后启动循环,display_date 函数被事件循环对象调用,display_date 函数依据参数判断注册回调函数安排延时调用计划或停止循环,在停止循环之后关闭循环。

    备注
    1. 在 run_forever 与 close 之间,回调函数执行,直至 stop 后,run_forever 退出,close 执行。
    参考

    相关文章

      网友评论

          本文标题:Python - Display the current dat

          本文链接:https://www.haomeiwen.com/subject/cmiysftx.html