[英]How does one read the function signatures from Python's official documentation
如果瀏覽官方Python文檔 ,可以看到不同類型的函數(或類)簽名。
random.uniform(a,b)
很容易理解:你傳遞了兩個對象a
和b
(它們是浮點數,它從它們之間的間隔返回一個隨機數)。 同樣簡單易懂的是來自的簽名
SSLSocket.getpeercert(binary_form =假)
其中還指定了參數的默認值,以防它在沒有任何參數的情況下被調用。
但后來也有與真奇怪簽名功能像
min(可迭代,* [,鍵,默認])
readline.append_history_file(nelements [,filename])
csv.register_dialect(name [,dialect [,** fmtparams]])
這些都意味着什么? 是否有一些參考指南解釋如何閱讀name[, dialect[, **fmtparams]]
?
這些示例只是從官方Python文檔中隨機抽取而來,並未涵蓋我遇到的所有簽名類型。 我需要一般性解釋如何閱讀這些簽名。
注意:我知道之前已經問過這個問題,但是如果有人這么做就找不到了,請給我發消息,我會刪除我的答案......
這主要是簡化的EBNF表示法 。 register_dialect(name[, dialect[, **fmtparams]])
表示register_dialect
函數采用強制name
參數,兼性dialect
參數和兼容性任意關鍵字參數。
以下示例中的星號表示key和default是僅關鍵字參數:
min(可迭代,* [,鍵,默認])
方括號中的參數是可選的,因此在filename下面是可選的:
readline.append_history_file(nelements [,filename])
帶有單個星號的參數意味着該函數可以包含任意數量的位置參數,例如:
a_function(a,b,* args)
帶有2個星號的參數意味着該函數可以包含任意數量的關鍵字參數,例如:
class dict(mapping,** kwarg)
Python文檔中解釋了所有內容: 函數定義
方括號中的參數是可選的。 這意味着它們具有默認值,如果您不提供值,則使用該值。 如果您閱讀功能說明,通常會解釋。
如果嵌套括號,則表示如果未提供外括號中的至少一個參數,則無法提供內括號中的參數。 例如:
csv.register_dialect(name [,dialect [,** fmtparams]])
表示: csv.register_dialect(name)
有效, csv.register_dialect(name, dialect)
有效, csv.register_dialect(name, dialect, **fmtparams)
有效,但csv.register_dialect(name, **fmtparams)
不有效有效。
*和**是args和kwargs, 這里有更多參考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.