3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
這是一個(gè)功能注釋。
更詳細(xì)地說(shuō),Python 2.x具有docstrings,允許您將元數(shù)據(jù)字符串附加到各種類(lèi)型的對(duì)象。這非常方便,因此Python 3通過(guò)允許您將元數(shù)據(jù)附加到描述其參數(shù)和返回值的函數(shù)來(lái)擴(kuò)展該功能。
沒(méi)有先入為主的用例,但PEP提出了幾個(gè)建議。一個(gè)非常方便的方法是允許您使用預(yù)期類(lèi)型注釋參數(shù); 然后很容易編寫(xiě)一個(gè)裝飾器來(lái)驗(yàn)證注釋或強(qiáng)制正確類(lèi)型的參數(shù)。另一種方法是允許特定于參數(shù)的文檔,而不是將其編碼到docstring中。

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
正如其他答案所述,該->
符號(hào)用作功能注釋的一部分。>= 3.5
但是,在更新版本的Python中,它具有已定義的含義。
PEP 3107 - 功能注釋描述了規(guī)范,定義了語(yǔ)法變化,func.__annotations__
存儲(chǔ)它們的存在以及它的用例仍然是開(kāi)放的這一事實(shí)。
但是在Python中3.5
,PEP 484 - Type Hints附加了一個(gè)含義:->
用于指示函數(shù)返回的類(lèi)型。它似乎也將在未來(lái)版本中強(qiáng)制執(zhí)行,如注釋的現(xiàn)有用法:
最快的可想到的方案將引入靜態(tài)棄用3.6中的非類(lèi)型提示注釋?zhuān)?.7中的完全棄用,并聲明類(lèi)型提示作為Python 3.8中唯一允許使用的注釋。
(強(qiáng)調(diào)我的)
3.6
到目前為止,我還沒(méi)有真正實(shí)現(xiàn)這一點(diǎn),因此它可能會(huì)受到未來(lái)版本的影響。
根據(jù)這個(gè),您提供的示例:
def f(x) -> 123: return x
將來(lái)會(huì)被禁止(并且在當(dāng)前版本中會(huì)令人困惑),需要將其更改為:
def f(x) -> int: return x
為了它有效地描述該函數(shù)f
返回一個(gè)類(lèi)型的對(duì)象int
。
Python本身并沒(méi)有以任何方式使用注釋?zhuān)鼛缀跆畛洳⒑雎运鼈儭S傻谌綆?kù)來(lái)決定它們。
添加回答
舉報(bào)