在任何pythonapi文档中,为什么可选参数都是用嵌套样式编写的?

2024-04-27 00:53:31 发布

您现在位置:Python中文网/ 问答频道 /正文

只是,为什么要这样做:

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知识。你知道吗


Tags: nonefalsetruefieldsscanastimeoutsnapshot
2条回答

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

以嵌套样式呈现的可选位置参数将强制字段的正确顺序。你知道吗

例如在fdopenos模块中

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

指示mode和bufsize是可选的,但如果指定bufsize,则还应指定mode。你知道吗

另一方面,对于Keywords参数,在没有任何命令强制的情况下指定一个默认值,以指示该值是可选的,在这种情况下,参数将用默认值初始化

例如在split的[re]模块中

split(string, maxsplit=0)

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

相关问题 更多 >