python 内置函数 min() 和 sorted() 中的参数
parameters in python built-in functions min() and sorted()
我正在 py.checkio.org 上完成任务,我遇到了编写自己的函数的练习 min()
和 max()
。
我在 official documentation 中阅读了有关此函数的文档,我对描述的参数感到惊讶,它们看起来像:min(iterable, *[, key, default])
我想知道*[,
这个结构是什么意思,很奇怪,因为*args
和**kwargs
是明确的,[,arg]
也是明确的。
但是*[,
很奇怪,这个参数是什么意思?
P.S sorted() function 有奇怪的参数星号:sorted(... *, ...)
什么意思?
[, key, default]
部分不是 Python 语法,它是表示可选部分(此处为可选参数)的通用编程语言语法语法。
编辑:*
部分在 a_guest 的回答中进行了解释(注意:这仅适用于 Python 3)
以下适用于 Python 3(OP 链接到的)。
sorted
denotes that all following named parameters must be supplied as keyword arguments ("keyword-only arguments", see PEP 3102)函数定义中的单星(*
)。这意味着以下将不起作用:
>>> sorted([1, 2, 3], lambda x: x)
[...]
TypeError: must use keyword argument for key function
相反,您必须通过关键字参数提供这些参数:
>>> sorted([1, 2, 3], key=lambda x: x)
[1, 2, 3]
我不完全确定 , *[, key, default]
语法应该表示什么(它无效 Python 但文档目的)但是我认为开发人员想要表达同样的事情,即你必须提供这些参数作为关键字参数(因为 min
和 max
可以采用任意数量的位置参数,这是唯一的方法)。
我正在 py.checkio.org 上完成任务,我遇到了编写自己的函数的练习 min()
和 max()
。
我在 official documentation 中阅读了有关此函数的文档,我对描述的参数感到惊讶,它们看起来像:min(iterable, *[, key, default])
我想知道*[,
这个结构是什么意思,很奇怪,因为*args
和**kwargs
是明确的,[,arg]
也是明确的。
但是*[,
很奇怪,这个参数是什么意思?
P.S sorted() function 有奇怪的参数星号:sorted(... *, ...)
什么意思?
[, key, default]
部分不是 Python 语法,它是表示可选部分(此处为可选参数)的通用编程语言语法语法。
编辑:*
部分在 a_guest 的回答中进行了解释(注意:这仅适用于 Python 3)
以下适用于 Python 3(OP 链接到的)。
sorted
denotes that all following named parameters must be supplied as keyword arguments ("keyword-only arguments", see PEP 3102)函数定义中的单星(*
)。这意味着以下将不起作用:
>>> sorted([1, 2, 3], lambda x: x)
[...]
TypeError: must use keyword argument for key function
相反,您必须通过关键字参数提供这些参数:
>>> sorted([1, 2, 3], key=lambda x: x)
[1, 2, 3]
我不完全确定 , *[, key, default]
语法应该表示什么(它无效 Python 但文档目的)但是我认为开发人员想要表达同样的事情,即你必须提供这些参数作为关键字参数(因为 min
和 max
可以采用任意数量的位置参数,这是唯一的方法)。