我怀疑这与实现有关。也就是说,对于CPython:
来自
socket.create_connection,
如果没有 超时 供应,全局默认超时设置返回由:FUNC:
getdefaulttimeout使用。
来自
socketmodule.c,
static PyObject *socket_getdefaulttimeout(PyObject *self){ if (defaulttimeout < 0.0) { Py_INCREF(Py_None); return Py_None; } else return PyFloat_FromDouble(defaulttimeout);}
此前在同一个文件,
static double defaulttimeout = -1.0;
所以看起来
Py_Noneaka
None是默认超时。换句话说,
urlopen永不超时。至少不是从Python端开始。我猜想,如果 *** 作系统提供的网络功能本身也有超时,那么仍然会发生超时。
编辑:哎呀,我想我根本不需要去寻找答案,因为它就在文档中。
值
None表示新的套接字对象没有超时。首次导入套接字模块时,默认值为None。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)