簡體   English   中英

python內置函數min()和sorted()中的參數

[英]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而是文檔目的)但是我認為開發人員想表達同樣的事情,即你必須提供這些參數關鍵字參數(因為minmax可以采用任意數量的位置參數,這是唯一的方法)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM