当前位置: 首页 > wzjs >正文

风景网站模版宁夏网站建设一条龙

风景网站模版,宁夏网站建设一条龙,用dw做网站图片的基本尺寸,企业宣传册范例文章目录 Python 类型注释简述用法说明基本类型容器类型特殊类型嵌套 用法案例普通变量类成员函数参数函数返回类型 效果参考资料 Python 类型注释 简述 Python 语言经常被人“诟病”的一个点就是类型,在变量定义、参数传递、参数返回时,由于没有类型常…

文章目录

  • Python 类型注释
  • 简述
  • 用法说明
    • 基本类型
    • 容器类型
    • 特殊类型
    • 嵌套
  • 用法案例
    • 普通变量
    • 类成员
    • 函数参数
    • 函数返回类型
  • 效果
  • 参考资料

Python 类型注释

简述

Python 语言经常被人“诟病”的一个点就是类型,在变量定义、参数传递、参数返回时,由于没有类型常常会很困惑,导致开发效率下降。

Python 的 typing 包是从 Python 3.5 版本引入的标准库,它提供了类型提示和类型注解的功能,可用于对代码进行静态类型检查(结合IDE,如Pycharm)和类型推断。typing模块中定义了多种类型和泛型,以帮助提高开发者代码的可读性、可维护性和可靠性。

注:本文档的案例、语法、使用方式等基于 Python 3.8。

用法说明

在类型注释部分,分为基本类型注释,容器类型注释,特殊类型

基本类型

基本类型包含 bool, int, float, str, bytes,与参数、变量和函数返回值一起使用。这几个类型不需要从typing中import。

a : int
b : bool
c : float
d : str
e : bytes

容器类型

容器类型包含 List, Dict, Set, Tuple,分别用于对 Python 中的列表、字典、集合、元组做类型注释。这几个类型需要从typing中import才可使用。

  • List

列表内存储对象的数据类型需标注在方括号内,以存储 int 的列表为例,则需标注为 List[int]。

lst : List[int]
  • Dict

字典是以键值对的方式来存储数据的,那么在标注类型的时候,需在方括号内标注键和值的类型。以键为 int 类型、值为 str 类型的字典为例,则需标注为 Dict[int, str]。

dict : Dict[int, str]
  • Set

与列表类似,内部存储元素的数据类型需标注在方括号内,以存储 int 的集合为例,则需标注为 Set[int]。

def func(att : Set[int]):print(att)if __name__ == "__main__":s = {1, 2, 3}func(s)
  • Tuple

元组的类型标注需要在方括号中依次给出类型,也可以使用…允许将数量未知的元素包括在 Tuple 的类型标注中。

def func(att : Tuple[int, str, float]):print(att)if __name__ == "__main__":tup = (1, 'str', 1.2)func(tup)

特殊类型

特殊一点的类型有:自定义的类型、None、Any、Union、Optional等。

  • 自定义类型

如自定义了一个dataclass,用来表示某数据库表中id和对应数据,如下:

@dataclass
class Geometry:"""代表 data 表中的一条数据Attributes:id - data 表中的 iddata - geometry 对应的二进制几何数据"""id: bytesdata: bytes

如果要标注类型为 Geometry 的数据,则需将Geometry从对应的.py中引入,之后便可直接标注该类型:

def f(g: Geometry):print(g)geoms : List[Geometry]
  • None

无需从 typing 中导入,与 int, str 等类似,常用于标注函数返回。

如在没有返回值的函数中,对于返回类型可标注为 None,如下:

def func(att : Set[int]) -> None:print(att)
  • Any

表示没有约束的类型,所有类型都与 Any 兼容,Any 与所有类型都兼容。未指定返回值与参数类型的函数,都隐式地默认使用 Any

  • Union

表示 联合类型,需要从 typing 中 import 后使用,类似C++中的联合体。Union表示多个类型中的其中一个,如某值的类型可能是int, str, float之一,则可写为Union[int, str, float]:

def fun(att : Union[int, str, float]):print(att)if __name__ == "__main__":fun(1)fun('123')fun(1.23)
  • Optional

表示可选类型,表示一个值可以为指定类型或None。Optional[X] 等价于 Union[X, None]。

在某数据表中,对于某字段值可有可无。若无该字段,则应为None;若有,则单位的类型为str,因此可以写为:

field: Optional[str] = None

嵌套

在进行类型标注时,允许做类型的嵌套,在做类型的嵌套时,前面提到的任意容器类型之间可以嵌套。如:

data: List[Tuple[str, str]]

用法案例

普通变量

a : int
b : bool
c : float
d : str
e : bytes

表示 a 为 int, b 为 bool, c 为 float, d 为 str, e 为 bytes。

当对已添加类型注释的变量赋予错误的类型值时,在Pycharm 中会给出提示:

image.png

类成员

对类中各个成员的类型的注释与普通变量的注释格式相同,如定义一个表示属性的结构:

@dataclass
class Property:"""代表一个属性Attributes:id - 属性 的 idname - 属性 的 namevalue - 属性 的 valueunit - 属性 的 单位"""id: strname: strvalue: Union[str, Tuple[str, str]]unit: Optional[str] = None

函数参数

类型注释中比较常用的场景之一,对于参数列表中的各个参数做注释。

如有一段解析某 xml 的函数,其入参即为 xml的绝对路径,因此在相关逻辑中,即可将参数标记为str:

def parse_xml(xml_path: str):...

函数返回类型

类型注释中比较常用的场景之一,用于标记某函数到底返回了什么类型的参数。

在Python中定义函数时:

def func_name(param_list):func_impl

对于返回值的注释,放在函数定义的圆括号之后,冒号之前并且写法是:-> type

如有一个比对两个类型为float的数据是否相等的逻辑,返回值类型应为 bool,则函数定义为:

def compare_float(a: float, b: float) -> bool:"""对比两个float是否相等Parameters:a - 需对比的第一个float数值b - 需对比的第二个float数值Returns:如果两个float相等则返回 True, 否则返回 False"""...

效果

  • 给出类型提示

image.png

当写完一个函数名称之后,Pycharm会自动提醒该写入的参数类型

  • 给出错误提示

以函数,当指定一个参数的类型之后,若实际传递的参数类型与标注不符,则会得到提示:

image.png

参考资料

  • typing — Support for type hints — Python 3.8.20 documentation

文章转载自:

http://ndRdCRKf.npxht.cn
http://dQN8ws5e.npxht.cn
http://Sid5q2z0.npxht.cn
http://MXZN4gI5.npxht.cn
http://tTIVI8nk.npxht.cn
http://1lggEQFw.npxht.cn
http://iG9E1mjN.npxht.cn
http://qxWW6Fqd.npxht.cn
http://fMCvLC7O.npxht.cn
http://eCMbOgNd.npxht.cn
http://c8B7eSKo.npxht.cn
http://uAFih3k8.npxht.cn
http://pwxehoZM.npxht.cn
http://fKur3Ecj.npxht.cn
http://kP7gmfHG.npxht.cn
http://ZVKBszKl.npxht.cn
http://GPf7mnX9.npxht.cn
http://QjglUZou.npxht.cn
http://nT1C7ywv.npxht.cn
http://7MOG8oCr.npxht.cn
http://N9WElP6b.npxht.cn
http://JVaMXUH9.npxht.cn
http://kh0tyJPr.npxht.cn
http://t8GFkYD3.npxht.cn
http://Zpj3sRFA.npxht.cn
http://4Zd7aPXL.npxht.cn
http://QCyVTXSc.npxht.cn
http://YZgZQizK.npxht.cn
http://yaT8EnEh.npxht.cn
http://E3D6SePr.npxht.cn
http://www.dtcms.com/wzjs/680766.html

相关文章:

  • 快速的网站设计制作如何建淘客网站
  • 门户网站快速制作货运app开发公司
  • 网站该怎么找到基于php的网站开发流程
  • 招聘网站开发的公司wordpress 路径标签
  • dedecms 旅游网站模板下载子网站用织梦系统
  • 做网站网站如何定位网站建设方案 评价
  • 树莓派做影视网站dw网站建设
  • 白狐网站建设电子商务专业怎么样
  • 广西网站运营美团网网站建设 费用
  • 大兴网站建设设计公司大连市平台网站
  • 推进网站集约化建设的做法网站建设控制
  • 咋么做进网站跳转加群营销网站费用
  • 网站建设自主开发的三种方式wordpress 百度mip
  • 大连做网站公司哪家好买机票便宜的网站建设
  • 游戏网站建设视频教程低价网站设计多少钱
  • 公司网站的管理和维护wordpress更换域名教程
  • 郑州营销型网站建设价格art2008cms网站开发
  • 宁波品牌网站制作哪家好长沙高端网站建设品牌
  • 手机网站建设规划图网站怎么做流量统计
  • 长丰网站制作wordpress文字幻灯片
  • 发簪做的比较好的网站如何做建筑一体化的网站
  • lua做网站做一个网站先做前段 还是后端
  • 网站开发的要求wordpress 支付下载
  • 制作网站的步骤有哪些小程序源码下载网
  • 免费海外网站cdn加速北京网站定制制作
  • 大学生做外包项目的网站铜川哪些公司需要网页电商设计师
  • 网站整站模板下载同一ip大量访问网站
  • 课程注册 网站开发怎么自己做企业网站
  • 简约大气网站设计欣赏泗洪县建设局网站
  • 四川做网站优化价格wordpress 多语言插件