为什么Python函数文档在可选参数的括号后面包含逗号?

oro*_*aki 6 python documentation notation

Python文档中的函数签名格式有点令人困惑.将逗号放在开括号后而不是之前有什么意义?嵌套括号有什么意义?

他们是怎样的:

RegexObject.match(string[, pos[, endpos]])
Run Code Online (Sandbox Code Playgroud)

我期待以下之一:

RegexObject.match(string, [pos], [endpos])
RegexObject.match(string[, pos][, endpos])
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 18

方括号表示内容是可选的,但方括号外的所有内容都是强制性的.

用你的符号:

RegexObject.match(string, [pos], [endpos])
Run Code Online (Sandbox Code Playgroud)

我希望不得不写:

r.match("foo",,)
Run Code Online (Sandbox Code Playgroud)

嵌套是必需的,因为如果提供第三个参数,那么即使它是可选参数,您也必须提供第二个参数.以下非嵌套替代方案将是不明确的:

RegexObject.match(string[, pos][, endpos])
Run Code Online (Sandbox Code Playgroud)