Python 选择声称最多可接受3个参数的模块(无可选超时)

Python 选择声称最多可接受3个参数的模块(无可选超时),python,select,timeout,nonblocking,Python,Select,Timeout,Nonblocking,我正在尝试编写一个程序,它等待readline输入,但对于非阻塞输入,只等待有限的时间。从另一个关于stackoverflow的问题中,我被提醒选择模块。它似乎适合我。但是,当我尝试实现它时,如下所示: i,o,e = select([sys.stdin],[],[],5) 如docs.python.org所述,(我只对输入感兴趣,在本例中,超时时间为5秒),我收到一条错误消息,内容如下: TypeError: select() takes at most 3 arguments (4 giv

我正在尝试编写一个程序,它等待readline输入,但对于非阻塞输入,只等待有限的时间。从另一个关于stackoverflow的问题中,我被提醒选择模块。它似乎适合我。但是,当我尝试实现它时,如下所示:

i,o,e = select([sys.stdin],[],[],5)
如docs.python.org所述,(我只对输入感兴趣,在本例中,超时时间为5秒),我收到一条错误消息,内容如下:

TypeError: select() takes at most 3 arguments (4 given)
如果我称之为:

i,o,e = select([sys.stdin],[],[])
然后我得到:

ValueError: list of cases must be same length as list of conditions
调用模块为/usr/lib/pymodules/python2.7/numpy/lib/function_base.py line 718。 我正在运行Ubuntu11.10和Python2.7.2+


有人能帮我解释一下吗?我真的需要超时功能。

听起来你在叫numpy。函数,但您需要该函数。相应地导入它们。

您可能正在使用星型导入(即modulename导入中的
*
)。正如您所看到的,这是危险的。我的导入调用读取的是简单的“导入选择”,而不是选择导入选择中的
?我的导入调用读取的是简单的“导入选择”。我的函数调用现在读取的是
i,o,e=select.select([sys.stdin],[],5)
现在,我收到一条错误消息,通知我
AttributeError:“function”对象没有属性“select”
可能您仍在从numpy import执行
*
?如果是这样的话,请在自己的模块中考虑此代码,在该模块中您不导入numpy内容,或者不导入*。字符“numpy”不会出现在我的代码中的任何地方,这是一个不需要声明的隐式调用吗?而且,我确实避免了导入*
,我能够找到答案。我只需要执行
importselect
,然后用
select.select()调用它。非常感谢你的帮助。