在任何python API文档中,为什么可选参数以嵌套样式编写?

问题描述 投票:2回答:2

这只是,为什么这样做:

find([spec=None[, fields=None[, skip=0[, limit=0[, timeout=True[, snapshot=False[, tailable=False[, sort=None[, max_scan=None[, as_class=None[, slave_okay=False[, await_data=False[, partial=False[, manipulate=True[, read_preference=ReadPreference.PRIMARY[, exhaust=False[, compile_re=True[, **kwargs]]]]]]]]]]]]]]]]]])

这似乎很丑陋和令人困惑,但在我遇到的每一个api文档中都出现过,我可能缺乏一些基本的python知识。

python optional-parameters
2个回答
0
投票

我没有任何真实的来源支持我的陈述

以嵌套样式呈现的可选位置参数将强制执行字段的正确排序。

例如os模块中的fdopen

os.fdopen(fd[, mode[, bufsize]])

表示mode和bufsize是可选的,但如果要指定bufsize,则还应指定mode。

另一方面,对于关键字参数,指定默认值而没有任何强制执行以表明该值是可选的,在这种情况下,参数将使用默认值初始化

例如,在split的[re]模块中

split(string, maxsplit=0)

2
投票

这是从extended Backus-Naur form借来的公约。正如上面Abhijit所指出的,嵌套意味着可选参数等可选。

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