Python类型注解

在Python中,类型注解是一种在变量、函数参数和函数返回值中指定类型的方法。类型注解不会影响程序的运行,但可以提供有关变量和函数预期类型的信息,可以帮助开发者更好地理解代码,并提供给IDE(集成开发环境)工具更好的代码补全和错误检查。

类型注解使用冒号(:)来指定变量或参数的类型,使用箭头(->)表示返回值的类型,例如:

name: str = 'John'  # name变量的类型为str
age: int = 25  # age变量的类型为int

def greet(name: str) -> str:
    return 'Hello ' + name  # 函数参数name的类型为str,函数返回值类型为str

类型注解可以用于函数参数和返回值,也可以用于变量。可以使用多种类型,如str、int、bool、list、dict等。类型注解还可以与特殊的类和类型提示库一起使用,以更详细地指定变量和参数的类型信息。

mypy & pyright: python的静态类型检查器

默认情况下, 即使你已经标注了类型注解,但是如果你传入一个不符合这个类型的参数或值,python解释器也不会做出错误或警告, 而是忽略类型注解,所以这些类型注解相当于就是给自己和IDE看的注释

为了使python的类型功能更加完善,我们可以使用mypy和pyright等静态类型检查器,检查我们的代码是否符合类型注解,相当于给我们的Python带来了一部分静态类型语言的功能

mypy下载及使用

可以使用以下命令下载mypy:

pip install mypy
#清华源
pip install mypy -i https://pypi.tuna.tsinghua.edu.cn/simple
#Anaconda
conda install mypy

这样我们就可以直接使用mypy命令来给我们的python文件进行类型检查了:

mypy file.py

typing库: 对于python类型注解和静态类型使用的补充库

一般情况下的基本类型和自定义类型功能无法满足完整的Python静态类型化需求,我们可以使用typing库更好地改善这种情况

官方的typing文档: There

typing提供的常用的类型注解类型

前置芝士: typing泛型

typing提供泛型对不同容器进行不同的类型注解支持

python使用[]中括号进行函数和类的泛型

Literal[]: 字面值常量

Literal的类似于有值的枚举, 使用Literal的类型标注允许它下标中的字面常量

# 允许给NumberSign赋值"zero", "positive" 和 "negative" 三种值
NumberSign: Literal["zero", 
  • 35
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值