Python - Hello World with call_soon

import asyncio

def hello_world(loop):
    print('Hello World')
    loop.stop()

loop = asyncio.get_event_loop()

# Schedule a call to hello_world()
loop.call_soon(hello_world, loop)

# Blocking call interrupted by loop.stop()
loop.run_forever()
loop.close()
调用模组级方法 get_event_loop 获取以全局策略管理的事件循环对象
    并将对象的引用赋予变量 loop
    
调用 loop 变量引用的 even loop 对象之 call_soon 方法
    callback 参数设置为 hello_world 函数
    第二参数设置为变量 loop 
    该方法安排计划一有可能即刻调用 callback
    其返回的 asyncio.Handle 实例不留存
    
调用 loop 变量引用的 even loop 对象之 run_forever 方法
    启动事件循环
    
调用 loop 变量引用的 even loop 对象之 close 方法
    关闭事件循环

代码执行过程小结:

引入 asyncio 模块,准备回调函数,获取事件循环对象,获得该对象即获得了 AbstractEventLoop 接口的访问能力,随后使用接口安排调用计划,之后启动循环,停止循环,关闭循环。

备注
  1. 在事件循环关闭之前,hello_world 被调用时停止了事件循环。
  2. 全局策略是 asyncio 预制实现的,作为全局范围内的缺省的一个实现了 AbstractEventLoopPolicy 接口的对象。policy-based design 是一种程序设计范式。事件循环管理器是以该范式抽象设计的,因此其类命名为 class asyncio.AbstractEventLoopPolicy
参考
  • asyncio Asynchronous I/O, event loop, coroutines and tasks
  • Policy-based design

你可能感兴趣的:(Python - Hello World with call_soon)