如果您检查Python的内置sorted()
函数的签名,请执行以下操作:
import inspect
print(inspect.signature(sorted))
签名为:(iterable, key=None, reverse=False)
。
基于我对获取的位置和可选参数的理解here,您似乎可以提供iterable
参数,然后提供key
参数而无需关键字{{1} } key=
参数。但是在传递key
参数时总是需要指定key=
。那是为什么?
我理解如果您想指定key
,但没有任何reverse=True
参数,那么您需要一个关键字,但我不明白为什么您需要指定{ {1}}当您提供key
时。
答案 0 :(得分:3)
这是Python issue 26729,sorted.__text_signature__
中的错误,缺少/
和*
,表示iterable
仅限位置key
{1}}和reverse
仅限关键字。补丁正在补丁审查中,分配给Raymond Hettinger。修补版本发布后,签名应显示为
(iterable, /, *, key=None, reverse=False)