![](/img/trans.png)
[英]Why the Python built-in functions of sum() and min() are much better?
[英]parameters in python built-in functions min() and sorted()
我在py.checkio.org上做任務,我遇到了一個練習來編寫我自己的函數min()
和max()
。
我在官方文檔中閱讀了有關此函數的文檔 ,我對所描述的參數感到驚訝,它們看起來像: min(iterable, *[, key, default])
我想知道這個結構是什么*[,
意思是,這很奇怪,因為*args
和**kwargs
很清楚,而且[,arg]
很清楚。 但是*[,
很奇怪,這個參數意味着什么?
PS sorted()函數有奇怪的參數asterisk: sorted(... *, ...)
是什么意思?
[, key, default]
部分不是Python語法,它是表示可選部分(這里是可選參數)的通用編程語言語法語法。
編輯: *
部分在a_guest的答案中解釋(nb:這僅適用於Python 3)
以下內容適用於Python 3(OP鏈接到的)。
sorted
的函數定義中的單個星號( *
)表示必須將所有后面的命名參數作為關鍵字參數提供( “僅限關鍵字參數” ,請參閱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
可以采用任意數量的位置參數,這是唯一的方法)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.