最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python-typing: 類型標(biāo)注與支持 Any類型詳解

 更新時間:2021年05月10日 15:00:07   作者:G____G  
這篇文章主要介紹了Python-typing: 類型標(biāo)注與支持 Any類型詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Any docs

Any 是一種特殊的類型。

靜態(tài)類型檢查器將所有類型視為與 Any 兼容,反之亦然, Any 也與所有類型相兼容。

這意味著可對類型為 Any 的值執(zhí)行任何操作或方法調(diào)用,并將其賦值給任何變量:

from typing import Any
a = None    # type: Any
a = []      # OK
a = 2       # OK
s = ''      # type: str
s = a       # OK
def foo(item: Any) -> int:
    # Typechecks; 'item' could be any type,
    # and that type might have a 'bar' method
    item.bar()
    ...

需要注意的是,將 Any 類型的值賦值給另一個更具體的類型時,Python不會執(zhí)行類型檢查。例如,當(dāng)把 a 賦值給 s 時,即使 s 被聲明為 str 類型,在運行時接收到的是 int 值,靜態(tài)類型檢查器也不會報錯。

此外,所有返回值無類型或形參無類型的函數(shù)將隱式地默認(rèn)使用 Any 類型:

def legacy_parser(text):
    ...
    return data
# A static type checker will treat the above
# as having the same signature as:
def legacy_parser(text: Any) -> Any:
    ...
    return data

當(dāng)需要混用動態(tài)類型和靜態(tài)類型的代碼時,上述行為可以讓 Any 被用作 應(yīng)急出口 。

Any 和 object 的行為對比。

與 Any 相似,所有的類型都是 object 的子類型。然而不同于 Any,反之并不成立: object 不是 其他所有類型的子類型。

這意味著當(dāng)一個值的類型是 object 的時候,類型檢查器會拒絕對它的幾乎所有的操作。把它賦值給一個指定了類型的變量(或者當(dāng)作返回值)是一個類型錯誤。

比如說:

def hash_a(item: object) -> int:
    # Fails; an object does not have a 'magic' method.
    item.magic()
    ...
def hash_b(item: Any) -> int:
    # Typechecks
    item.magic()
    ...
# Typechecks, since ints and strs are subclasses of object
hash_a(42)
hash_a("foo")
# Typechecks, since Any is compatible with all types
hash_b(42)
hash_b("foo")

使用 object 示意一個值可以類型安全地兼容任何類型。使用 Any 示意一個值地類型是動態(tài)定義的。

補(bǔ)充:python3.5 typing — 類型標(biāo)注支持

函數(shù)接受并返回一個字符串,注釋像下面這樣:

def greeting(name: str) -> str:
    return 'Hello' + name

在函數(shù) greeting 中,參數(shù) name 預(yù)期是 str 類型,并且返回 str 類型。子類型允許作為參數(shù)。

1.1. 類型別名

型別名通過將類型分配給別名來定義。在這個例子中, Vector 和 List[float] 將被視為可互換的同義詞:

from typing import List
Vector = List[float]
def scale(scalar: float, vector: Vector) -> Vector:
    return [scalar * num for num in vector]
# typechecks; a list of floats qualifies as a Vector.
new_vector = scale(2.0, [1.0, -4.2, 5.4])

類型別名可用于簡化復(fù)雜類型簽名。

例如:

from typing import Dict, Tuple, List
ConnectionOptions = Dict[str, str]
Address = Tuple[str, int]
Server = Tuple[Address, ConnectionOptions]
def broadcast_message(message: str, servers: List[Server]) -> None:
    ...
# The static type checker will treat the previous type signature as
# being exactly equivalent to this one.
def broadcast_message(
        message: str,
        servers: List[Tuple[Tuple[str, int], Dict[str, str]]]) -> None:
    ...

請注意,None 作為類型提示是一種特殊情況,并且由 type(None) 取代。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • python利用beautifulSoup實現(xiàn)爬蟲

    python利用beautifulSoup實現(xiàn)爬蟲

    這篇文章主要介紹了python利用beautifulSoup實現(xiàn)爬蟲,需要的朋友可以參考下
    2014-09-09
  • Django中如何使用Channels功能

    Django中如何使用Channels功能

    這篇文章主要介紹了在Django中使用Channels功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • python?文件讀寫和數(shù)據(jù)清洗

    python?文件讀寫和數(shù)據(jù)清洗

    這篇文章主要介紹了python文件讀寫和數(shù)據(jù)清洗,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下,希望對你的學(xué)習(xí)又是幫助
    2022-08-08
  • Python實現(xiàn)常見限流算法的示例代碼

    Python實現(xiàn)常見限流算法的示例代碼

    在系統(tǒng)的穩(wěn)定性設(shè)計中,需要考慮到的就是限流,避免高并發(fā)環(huán)境下一下子把服務(wù)整垮了,本文為大家整理了一些Python實現(xiàn)的常見限流算法,希望對大家有所幫助
    2024-03-03
  • Pyinstaller打包文件太大的解決方案

    Pyinstaller打包文件太大的解決方案

    這篇文章主要介紹了Pyinstaller打包文件太大的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 如何用Python來理一理紅樓夢里的那些關(guān)系

    如何用Python來理一理紅樓夢里的那些關(guān)系

    這篇文章主要介紹了用Python來理一理紅樓夢里的那些關(guān)系代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 對Python 3.2 迭代器的next函數(shù)實例講解

    對Python 3.2 迭代器的next函數(shù)實例講解

    今天小編就為大家分享一篇對Python 3.2 迭代器的next函數(shù)實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 用python實現(xiàn)讀取xlsx表格操作

    用python實現(xiàn)讀取xlsx表格操作

    大家好,本篇文章主要講的是用python實現(xiàn)讀取xlsx表格操作,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Python實現(xiàn)端口復(fù)用實例代碼

    Python實現(xiàn)端口復(fù)用實例代碼

    這篇文章主要介紹了Python實現(xiàn)端口復(fù)用實例代碼,需要的朋友可以參考下
    2014-07-07
  • 基于Python+Flask設(shè)計實現(xiàn)AI智能天氣助手系統(tǒng)

    基于Python+Flask設(shè)計實現(xiàn)AI智能天氣助手系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了如何基于Python和Flask設(shè)計實現(xiàn)一個AI智能天氣助手系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2025-03-03

最新評論

师宗县| 武夷山市| 兴业县| 思茅市| 桐庐县| 台南县| 龙游县| 綦江县| 马山县| 内江市| 梁平县| 邓州市| 临武县| 高唐县| 毕节市| 马山县| 连江县| 石家庄市| 宽甸| 昌乐县| 克拉玛依市| 丰都县| 长春市| 东明县| 安图县| 卢龙县| 嘉禾县| 江源县| 中方县| 东兴市| 北海市| 清涧县| 土默特左旗| 青河县| 昭平县| 银川市| 淅川县| 都江堰市| 沭阳县| 栖霞市| 铜川市|