为什么sorted()的关键参数需要关键字参数

时间:2016-07-19 20:42:43

标签: python python-3.x sorted keyword-argument

如果您检查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时。

1 个答案:

答案 0 :(得分:3)

这是Python issue 26729sorted.__text_signature__中的错误,缺少/*,表示iterable仅限位置key {1}}和reverse仅限关键字。补丁正在补丁审查中,分配给Raymond Hettinger。修补版本发布后,签名应显示为

(iterable, /, *, key=None, reverse=False)