rlist, wlist, xlist = select.select([Server] + open_client_sockets, [], [])
我理解上面的代码将可读文件插入到读取列表中,将可写入文件插入到wlist中,将特殊文件插入到xlist中。但是,如果我只想收到rlist怎么办?我不希望python创建wlist和xlist变量。
有可能是rlist, [], [] = select.select([Server] + open_client_sockets, [],[])
吗?
答案 0 :(得分:2)
使用Python 3,您只需执行以下操作:
rlist, _, _ = select.select([Server] + open_client_sockets, [],[])
由于您使用的是Python 2,您可以通过以下方式实现相同目标:
_
以上称为解包,我们通常使用=Parameters!DimTiempoAnio.Value(0)
来丢弃我们不感兴趣的数据。
答案 1 :(得分:1)
(以下假设您拒绝使用像_
这样的一次性名称,并且确实想要设置 rlist
。)
我不希望python创建wlist和xlist变量。
然后不要让它:)
rlist = select.select([Server] + open_client_sockets, [], [])[0]
您可以立即索引select.select
返回的匿名三元组,从而永远不会将返回值的其余部分绑定到任何名称。
对此的标准反对意见是其可读性差;你看到一个名称和被调用函数的赋值,并且很容易假设rlist
将是预期的三元组。 [0]
可能会在通话结束时丢失。
一种解决方法是使用辅助函数预先移动“索引”:
from operator import itemgetter
rlist = itemgetter(0)(select.select([Server] + open_client_sockets, [], []))
然而,这更不可读,而且不是itemgetter
的预期用例。
或者,只需添加第二行代码
rlist = select.select([Server] + open_client_sockets, [], [])
rlist = rlist[0]
延迟select.select
返回的其他两个对象的垃圾收集。
答案 2 :(得分:0)
您可以将下划线用于您不关心的元组成员
rlist, _, _ = select.select([Server] + open_client_sockets, [], [])