【发布时间】:2019-09-03 10:25:34
【问题描述】:
我想在 python 3 中为 urllib.request.urlopen 指定一个超时参数。
docs 说:
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
[timeout, ]* 是什么意思?
我认为所有可选的命名参数(data=None、cafile=None ...)都必须出现在所有未命名参数之前。
这里看起来timeout 是一个未命名的参数。但它出现在之后 data。
只看那个文档,我不知道是否要使用:
urlopen(url, 123)urlopen(url, timeout=123)urlopen(url, [123])urlopen(url, [123]*)
我可以从this post 看到正确答案是urlopen(url, timeout=123)。
但如果是这样的话,为什么文档说[timeout, ]*,为什么不直接说timeout=None?
【问题讨论】:
标签: python-3.x parameter-passing documentation urllib