簡體   English   中英

以下 Python 代碼中的冒號是做什么用的?

[英]What do the colons in the following Python code do?

這段代碼來自python教程文檔——4.7.7 Function 注釋

def f(ham: 42, eggs: int = 'spam') -> "Nothing to see here":
     print("Annotations:", f.__annotations__)
     print("Arguments:", ham, eggs)

我不知道“火腿”和“雞蛋”之后的冒號 ( :是做什么的。 請給我解釋一下。

它基本上是一種將任意元數據添加到 function arguments 和/或返回值的方法。 --盧卡斯格拉夫

它實際上只是一種將對象附加到函數、arguments 和其他東西的方法。 您可以將其用於文檔、驗證或僅用於添加無意義的數據。 - 戳

另見: PEP-3107

直接從文檔中:

Function 注釋是完全可選的,關於用戶定義函數的任意元數據信息。 Python 本身和標准庫都沒有以任何方式使用 function 注釋; 本節僅顯示語法。 第三方項目可以免費使用 function 注解,用於文檔、類型檢查等用途。

注釋作為字典存儲在 function 的__annotations__屬性中,對 function 的任何其他部分沒有影響。參數注釋由參數名稱后的冒號定義,后跟一個計算注釋值的表達式。 返回注釋由文字->定義,后跟表達式,位於參數列表和表示def語句結尾的冒號之間。 下面的示例有一個位置參數、一個關鍵字參數和用廢話注釋的返回值:

 >>> def f(ham: 42, eggs: int = 'spam') -> "Nothing to see here": ... print("Annotations:", f.__annotations__)... print("Arguments:", ham, eggs)... >>> f('wonderful') Annotations: {'eggs': <class 'int'>, 'return': 'Nothing to see here', 'ham': 42} Arguments: wonderful spam

暫無
暫無

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

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