溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何正確使用Python中的函數(shù)注釋

發(fā)布時(shí)間:2021-10-20 11:48:37 來(lái)源:億速云 閱讀:275 作者:iii 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“如何正確使用Python中的函數(shù)注釋”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“如何正確使用Python中的函數(shù)注釋”吧!

我在查看python的fixture源碼時(shí)發(fā)現(xiàn) fixture的方法定義形式如下:

def fixture(     fixture_function: Optional[_FixtureFunction] = None,     *,     scope: "Union[_Scope, Callable[[str, Config], _Scope]]" = "function",     params: Optional[Iterable[object]] = None,     autouse: bool = False,     ids: Optional[         Union[             Iterable[Union[None, str, float, int, bool]],             Callable[[Any], Optional[object]],         ]     ] = None,     name: Optional[str] = None, ) -> Union[FixtureFunctionMarker, _FixtureFunction]:

我頓時(shí)有些凌亂,不知這是什么東東,經(jīng)過(guò)各種網(wǎng)上查找資料,發(fā)現(xiàn)這是Python 3.X新增加的一個(gè)特性,叫作函數(shù)注釋 Function  Annotations。它的用途雖然不是語(yǔ)法級(jí)別的硬性要求,但是顧名思義,它可作為函數(shù)額外的注釋來(lái)用。他的用法也很簡(jiǎn)單。

在python中定義普通的函數(shù),方法如下:

def f1(a,b):     return a+b

通過(guò)函數(shù)注釋,方法定義如下:

def f2(a: "str類(lèi)型參數(shù)a", b: "str類(lèi)型參數(shù)b") -> str:     print("Annotations:", f2.__annotations__)     return a+b

其中

  • a: "str類(lèi)型參數(shù)a"代表了對(duì)參數(shù)a的說(shuō)明

  • b: "str類(lèi)型參數(shù)b"代表了對(duì)參數(shù)b的說(shuō)明

  • -> str:代表了函數(shù)的返回值

  • f2.__annotations__查看函數(shù)的注釋說(shuō)明

運(yùn)行 print(f2('aa','bb')),輸出:

Annotations: {'a': 'str類(lèi)型參數(shù)a', 'b': 'str類(lèi)型參數(shù)b', 'return': }

aabb

那么定義了函數(shù)的參數(shù)類(lèi)型和返回值類(lèi)型我們是否就不可以對(duì)其進(jìn)行修改了呢,讓我們做如下嘗試:

print(f2(1,2)),輸出:

Annotations: {'a': 'str類(lèi)型參數(shù)a', 'b': 'str類(lèi)型參數(shù)b', 'return': }

可見(jiàn), Function Annotations它的作用僅僅是為函數(shù)進(jìn)行注釋來(lái)用,并不能指定參數(shù)類(lèi)型。

到此,相信大家對(duì)“如何正確使用Python中的函數(shù)注釋”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI