簡體   English   中英

內置列表function說明中的“/”是什么

[英]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.

來自Python 有關 help() 的文檔

請注意,如果斜線(/)出現在 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種參數:

  1. Positional-only,只能通過positional arguments設置
  2. “常規”,可以通過位置 arguments 或關鍵字 arguments 設置
  3. Keyword-only,只能通過關鍵字arguments設置。

在定義 function 時,使用/分隔左側的僅位置參數(至少一個)和右側的 rest。 如果參數列表中沒有/ ,則沒有位置參數。

語法起源於參數 clinic,它用於為 CPython 實現定義函數。 在 PEP-570 中將其添加到 Python 本身的語法之前,它的使用出現在此類函數的幫助中。

暫無
暫無

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

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