选择器相当于 Python 2?

selectors equivalent for Python 2?

Python 3 有 selectors 模块,它允许我们 register 在文件描述符事件上,并且只在稍后代码的不同部分 select就可以了。

在Python2中我们只有select模块,这就要求我们'register'和'select'在同一行,这是有限制的。

如果我想在一个函数中注册一个事件并在另一个函数中等待它 ('select'),如何在 Python 2 中完成?

所以有两个库可以充当这个角色:selectors2 and selectors34。 它们非常相似,支持 Python 2.6+,并且是选择器模块的直接替代品。但是,selectors2 集成了 PEP 475 which retries system calls when they are interrupted and has a more robust battery of tests 以及所有主要 OSes(Windows、Mac OS 和 [=27] 上的 100% 测试覆盖率和自动化测试=]).

安装模块:

python -m pip install selectors2

以下代码将在 Python 2.6+

中运行
try:
    import selectors
except ImportError:
    import selectors2 as selectors

免责声明:我是 selectors2 的作者。