您好,登錄后才能下訂單哦!
本篇內(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í)!
免責(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)容。