电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python-typing: 類型標注與支持 Any類型詳解

瀏覽:6日期:2022-06-20 10:02:41

Any docs

Any 是一種特殊的類型。

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

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

from typing import Anya = None # type: Anya = [] # OKa = 2 # OKs = ’’ # type: strs = a # OKdef foo(item: Any) -> int: # Typechecks; ’item’ could be any type, # and that type might have a ’bar’ method item.bar() ...

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

此外,所有返回值無類型或形參無類型的函數將隱式地默認使用 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

當需要混用動態類型和靜態類型的代碼時,上述行為可以讓 Any 被用作 應急出口 。

Any 和 object 的行為對比。

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

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

比如說:

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 objecthash_a(42)hash_a('foo')# Typechecks, since Any is compatible with all typeshash_b(42)hash_b('foo')

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

補充:python3.5 typing — 類型標注支持

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

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

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

1.1. 類型別名

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

from typing import ListVector = 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])類型別名可用于簡化復雜類型簽名。

例如:

from typing import Dict, Tuple, ListConnectionOptions = 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) 取代。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 活性炭-蜂窝-椰壳-柱状-粉状活性炭-河南唐达净水材料有限公司 | 软文发布平台 - 云软媒网络软文直编发布营销推广平台 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 贝朗斯动力商城(BRCPOWER.COM) - 买叉车蓄电池上贝朗斯商城,价格更超值,品质有保障! | 武汉宣传片制作-视频拍摄-企业宣传片公司-武汉红年影视 | 防水套管-柔性防水套管-刚性防水套管-上海执品管件有限公司 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 酸度计_PH计_特斯拉计-西安云仪| 步进电机_agv电机_伺服马达-伺服轮毂电机-和利时电机 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 缠膜机|缠绕包装机|无纺布包装机-济南达伦特机械设备有限公司 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 雨燕360体育免费直播_雨燕360免费NBA直播_NBA篮球高清直播无插件-雨燕360体育直播 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 贴片电感_贴片功率电感_贴片绕线电感_深圳市百斯特电子有限公司 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 宏源科技-房地产售楼系统|线上开盘系统|售楼管理系统|线上开盘软件 | 合肥风管加工厂-安徽螺旋/不锈钢风管-通风管道加工厂家-安徽风之范 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 宠物店加盟_宠物连锁店_开宠物店-【派多格宠物】 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 企业彩铃制作_移动、联通、电信集团彩铃上传开通_彩铃定制_商务彩铃管理平台-集团彩铃网 | 回转炉,外热式回转窑,回转窑炉-淄博圣元窑炉工程有限公司 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 99文库_实习生实用的范文资料文库站 | 济南冷库安装-山东冷库设计|建造|冷库维修-山东齐雪制冷设备有限公司 | 无锡装修装潢公司,口碑好的装饰装修公司-无锡索美装饰设计工程有限公司 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 成都竞价托管_抖音代运营_网站建设_成都SEM外包-成都智网创联网络科技有限公司 | 碳钢法兰厂家,非标法兰,定制异型,法兰生产厂家-河北九瑞管道 | 精雕机-火花机-精雕机 cnc-高速精雕机-电火花机-广东鼎拓机械科技有限公司 | 热工多功能信号校验仪-热电阻热电偶校验仿真仪-金湖虹润仪表 | 铝机箱_铝外壳加工_铝外壳厂家_CNC散热器加工-惠州市铂源五金制品有限公司 | 河南凯邦机械制造有限公司| uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 |