Python文档:urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None)中的方括号是什么意思?

问题描述 投票:-1回答:1

我正在学习python,在标准库的文档中看到了urllib.request中的这个函数描述。

> urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None,
> capath=None, cadefault=False, context=None)

我不明白周围的方括号是什么意思。timeout, 的意思。

我甚至不知道如何读取这个函数的参数列表:我们是否有一个参数是 [timeout 然后是一个参数 ]* 用逗号隔开,或者是 [timeout, ]* 一个参数作为一个整体?

在这种情况下,方括号内超时后的逗号是什么意思?

另外, 星盘 在这种特殊情况下是什么意思?

谢谢!

python
1个回答
2
投票

参数文档中的方括号一般表示一个 可选 参数。这不仅是Python文档中的情况,实际上也是一个广泛使用的惯例。

所以,在这种情况下,它意味着 timeout 是可选的,这一点得到了 文档文本 (大胆 重点是我的)。)

(我强调): 可选 超时 参数指定了阻止连接尝试等操作的超时时间,以秒为单位(如果没有指定,将使用全局默认超时设置)。这实际上只对HTTP、HTTPS和FTP连接有效。

参数文档中的星号通常意味着 "零次或多次重复"。然而,Python文档中实际上使用了省略号()的意思。

事实上,这个星号其实根本不是文档的一部分,只是正常的函数参数声明语法。

它本质上的意思是 "位置参数的结束,这个之后的所有内容都是 必须 作为关键字参数传递"。

函数参数中的裸星号?在Python中强制命名参数 更多细节和 PEP 3102--仅有关键词的论点 为规范。

© www.soinside.com 2019 - 2024. All rights reserved.