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