[英]What is the " / " in the built-in list function descriptions
內置列表 function 描述的末尾是“/”。 它是什么?
>>> l=[]
>>> help(l.insert)
Help on built-in function insert:
insert(index, object, /) method of builtins.list instance
Insert object before index.
>>> help(l.index)
Help on built-in function index:
index(value, start=0, stop=9223372036854775807, /) method of builtins.list instance
Return first index of value.
請注意,如果斜線(/)出現在 function 的參數列表中,則在調用 help() 時,這意味着斜線之前的參數是僅位置參數。
以及來自positional-only parameters 的 FAQ 條目:
一個function的參數列表中的斜杠(/)是什么意思?
function 的參數列表中的斜杠表示它之前的參數僅是位置參數。 僅位置參數是沒有外部可用名稱的參數。 在調用接受僅位置參數的 function 時,arguments 將映射到僅基於其 position 的參數。例如,divmod() 是接受僅位置參數的 function。 它的文檔如下所示:
>>> help(divmod)
Help on built-in function divmod in module builtins:
>
> divmod(x, y, /)
> Return the tuple (x//y, x%y). Invariant: div*y + mod == x.
參數列表末尾的斜杠表示兩個參數都是位置參數。 因此,使用關鍵字 arguments 調用 divmod() 會導致錯誤:
>>> divmod(x=3, y=4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: divmod() takes no keyword arguments
Python中有3種參數:
在定義 function 時,使用/
分隔左側的僅位置參數(至少一個)和右側的 rest。 如果參數列表中沒有/
,則沒有位置參數。
語法起源於參數 clinic,它用於為 CPython 實現定義函數。 在 PEP-570 中將其添加到 Python 本身的語法之前,它的使用出現在此類函數的幫助中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.