功能注釋
函數注釋是關於用戶定義函數使用的類型的完全可選元數據信息(請參閱PEP 3107和 PEP 484了解更多信息)。
注釋__annotations__
作為字典存儲在函數的屬性中,對函數的任何其他部分都沒有影響。參數注釋由參數名稱后面的冒號定義,后跟一個表達式,用於評估注釋的值。返回注釋由->
參數列表和冒號表示def
語句結尾之間的文字,后跟表達式定義。以下示例具有位置參數,關鍵字參數和注釋的返回值:
def f(ham: str, eggs: str = 'eggs') -> str: print("Annotations:", f.__annotations__) print("Arguments:", ham, eggs) return ham + ' and ' + eggs f('spam') # Annotations: {'ham': <class 'str'>, 'eggs': <class 'str'>, 'return': <class 'str'>} # Arguments: spam eggs
我們可以發現
-> 主要是標記返回值數據類型;
拿上面例子來說,在函數f中,標記參數ham為str類型,eggs為str類型;return的值為->后面標記的類型str。
這樣寫的話,我們光看代碼就可以知道該方法返回什么類型的數據,而不需要去調試。
但是如果指定不一致呢,比如說,我們標記f的返回結果為int,但是實際結果卻是str。
此時,開發工具里面應該會報錯,提示返回值不對,但是程序照樣正常運行,不會拋異常。