gpt4 book ai didi

python - 关于 python select.select 调用的返回值

转载 作者:太空宇宙 更新时间:2023-11-04 03:41:29 25 4
gpt4 key购买 nike

在python的SocketServer.py代码中,我找到了以下代码。

r, w, e = _eintr_retry(select.select, [self], [], [], poll_interval)
if self in r:
self._handle_request_noblock()

上面的if语句有必要吗?由于只有“self”被传递给 select 调用,因此我不希望其他文件描述符出现在返回的文件描述符列表中。

我问这个的原因是,我应该遵循上面的风格还是像下面这样就足够了?

r, w, e = select.select( [self], [], [], poll_interval)
if r:
...

最佳答案

if r:

不等于

if self in r:

您可以阅读select.select文档:

Empty sequences are allowed, but acceptance of three empty sequences is platform-dependent.

[...]

The return value is a triple of lists of objects that are ready: subsets of the first three arguments. When the time-out is reached without a file descriptor becoming ready, three empty lists are returned.

由于在模块中,变量 poll_interval 被传递给函数,因此您可能会遇到返回空列表的情况。空列表将通过简单的 if r: 检查!

关于python - 关于 python select.select 调用的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29474093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com