2020 年了,各位拥抱 Python 的类型注释了么?

2020-05-09 11:06:15 +08:00
 guyeu

知乎上有个几年前的问题,那时候不用 type hint 的原因主要有以下几点:

2020 年的今天,上述的有些问题应该已经没了,剩下的问题是不是依然阻碍使用 type hint 呢?

7330 次点击
所在节点    Python
46 条回复
Vegetable
2020-05-09 11:10:41 +08:00
用了,IDE 支持已经不错了,所以其他缺点都不算缺点了。
最近在学习 Fastapi 和 pydantic,很惊艳。
冷暖自知吧,我个人感觉很好。
xiaolinjia
2020-05-09 11:23:47 +08:00
用了,挺好的。
LokiSharp
2020-05-09 11:29:30 +08:00
不用,这个特性目前依旧是个高级的注释,运行时没有啥实际作用,我写 Python 就是为了少敲点类型,真需要静态类型的干嘛不换个语言
更好的 IDE 支持?我写 Python 很多时候就是因为写脚本用编辑器直接敲起来方便,项目复杂度真到到非用 IDE 不可的时候,用 Java C# 之类的工程化的语言不是更香么
xiaolinjia
2020-05-09 11:44:28 +08:00
我感觉看场景,ls 说的只适用于单人开发场景,或者说把场景固定死了在单人小应用(脚本就是其中一种)中使用 py 。我觉得 type hint 在多人协作中就很有用,因为动态类型看着累,并且代码还不都是自己写的。直接配合 ide 提醒就很舒服。不支持 py2 是真的,不过 2 都退休了就算了(虽然我公司的一些项目还在 2,我巴不得 2 也能上)。
ZSeptember
2020-05-09 11:48:08 +08:00
大型项目可以用
我一般用 Go 和 Java,用 Python 就是为了不写类型的,就不用了。
xpresslink
2020-05-09 12:04:59 +08:00
python 比较适合做大量尝试性的开发项目,还有就是一次性的任务,比如爬虫。还有开发工具类的项目,比如运维工具系统的 web 界面之类,还有一些系统和管理后台等。这类项目基本上就是自己一个人玩的项目,写不写注释无所谓。
LokiSharp
2020-05-09 12:05:33 +08:00
@xiaolinjia #4 然而多人场景用真静态类型的语言你会更舒服,性能还比 Python 好一个数量级
dayeye2006199
2020-05-09 12:12:59 +08:00
可以上 pyre 和 mypy,自动加上类型注释和做类型检查。
个人脚本可以不加。但多人协作加上这个会对大家心智负担减轻很多。

Instagram 内部是强制 pyre 检查的,不过不让 commit 的。
di94sh
2020-05-09 12:15:54 +08:00
当你一直要处理复杂数据结构的时候,你就是到 type hint 多香了。dict 传来传去到最后自己都不知道里面是啥
JJstyle
2020-05-09 12:19:53 +08:00
说实话,写这玩意很累
Liyiw
2020-05-09 12:25:26 +08:00
我感觉你说的前 4 点不会因为是 2020 的今天就没了吧
这些问题不是一直存在的吗
莫非 python 把 type hinting 的语法改了?
so1n
2020-05-09 12:31:04 +08:00
用了,除了工程化外解析程序和 api 接口类型检验时也很好用
jjx
2020-05-09 12:53:51 +08:00
还停留在 python 2
Mohanson
2020-05-09 13:01:06 +08:00
python 许多标准库都加上 hint 了, 有什么理由不用呢...
009694
2020-05-09 13:25:41 +08:00
用 而且用的很多。 就我平常用的最多的 matplotlib 来说 pycahrm 对 axes 的提示几乎没有 都靠记忆太累了,加上 type hint 之后 所有提示都有了,整体心智负担指数级下降
jsq2627
2020-05-09 13:46:07 +08:00
https://www.v2ex.com/t/656654
似曾相识的话题
pakro888
2020-05-09 13:53:19 +08:00
好用,尤其是过一段时间再看项目,很有帮助
locoz
2020-05-09 13:59:59 +08:00
用,写习惯了 Golang 之后写 Python 的时候加类型注解完全就是顺手而为,毫无麻烦感😂
paoqi2048
2020-05-09 14:03:25 +08:00
准备试试
yhxx
2020-05-09 14:04:05 +08:00
有种在说 typescript 的感觉

其实我也一直觉得要是想要静态类型我换个语言就是了,用 python 就是不想写类型啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/669912

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX