鱼C论坛

 找回密码
 立即注册
查看: 1486|回复: 1

[技术交流] Python中的类型注释

[复制链接]
发表于 2022-7-9 10:42:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Brick_Porter 于 2022-7-9 11:04 编辑

类型注释
Python是一种动态类型编程语言。动态类型的意思是每个变量的类型都是在程序运行时根据值的类型决定的,而非像C/C++、Java、Go等静态类型语言一样在定义时(也就是在运行前)就已经定好了。

动态类型的好处是灵活,以Python为例:
a = 10
print(a)

a = "Python"
print(a)
这样写是没有问题的,当变量a的值是10的时候它就是int类型;当a的值是"Python"的时候它就是str类型。

再以Go语言为例:
var a int // 声明变量a为int类型
a = 10 // 正确
a = "Go" // 编译不通过
静态类型的编程语言一旦变量类型确定就不能接受其他类型的值了。变量a声明为int类型后只能接受整数类型的值,如果被赋予其他类型的值则直接引发编译错误。

静态类型与动态类型各有优劣。代码量较少的时候动态类型这一特性用起来非常顺手,而代码量一旦增加或是要和他人合作,由于不知道变量明确的类型反而降低了开发效率,因为开发人员需要在编写代码过程中反复跳转以确定变量的类型,这样才能确定可以执行那些操作。
相对来说静态类型的优势就凸显出来了,由于一开始就强制说明类型,因为类型不一致引发的错误在编译阶段就可以避免了。

Python作为动态类型的语言自然具备动态语言的劣势。为了解决这个问题,Python在3.5版本中采纳了Python增强提案484的提议,增加了Type Hint,也叫做Type Annotation,译作类型注释、类型注解、类型标记等等。
以类型注释的方式说明参数或变量的类型,方便开发者调试。同时类型注释不是强制的,侵入式的。也就是说在原有的Python代码中增加类型注释也不会影响性能,此外也不是说一旦采用类型注释就需要对所有的变量、参数等进行标注。

来看一个示例:
def add(a, b):
    return a + b
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-14 12:06:55 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 16:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表