Tôi nghi ngờ điều này phụ thuộc vào việc triển khai thực hiện. Điều đó nói rằng, đối với CPython:
Từ socket.create_connection
,
Nếu không timeout được cung cấp, thời gian chờ mặc định toàn cầu thiết lập được trả về bởi: func: getdefaulttimeout
được sử dụng.
Từ socketmodule.c
,
static PyObject *
socket_getdefaulttimeout(PyObject *self)
{
if (defaulttimeout < 0.0) {
Py_INCREF(Py_None);
return Py_None;
}
else
return PyFloat_FromDouble(defaulttimeout);
}
Earlier trong cùng một tập tin,
static double defaulttimeout = -1.0; /* Default timeout for new sockets */
Vì vậy, nó trông giống như Py_None
, aka None
, là thời gian chờ mặc định. Nói cách khác, urlopen
không bao giờ hết giờ. Ít nhất không phải từ đầu Python. Tôi đoán một thời gian chờ vẫn có thể xảy ra nếu các chức năng mạng được cung cấp bởi hệ điều hành có thời gian chờ mình.
Edit: oops, tôi đoán tôi không cần phải đi lặn nguồn cho câu trả lời ở tất cả, vì nó ở ngay trong docs.
Giá trị None
cho biết các đối tượng ổ cắm mới không có thời gian chờ. Khi mô-đun ổ cắm được nhập lần đầu tiên, mặc định là None
.
vì vậy ... nó trông từ hạt nhân Linux? – confiq