你们的 Python 代码加不加 Type Hints

2023-09-05 14:44:27 +08:00
 vicalloy
现在成熟一些的 Python 库都是有 Type Hints 。就我而言,新写的代码基本上都会加。加上后 IDE 可以自动补全,配合 mypy 检查出一些潜在的错误。
在我看来,在程序开始变复杂时,应当让 IDE 和编译器能尽可能的发现更多的问题。如果要用 Python 写一些复杂一些的程序,Type Hints/代码检查/单元测试都是必不可少的。
近期看到有人说“类型注解会增加看代码的心智负担”。感觉就如何注释写多了会增加心智负担一样,无法理解。再者 Python 里大多的类型其实都是可以自动推导,除了函数的输入/输出参数,要手动注明的其实并不多。

如果自己写一些小工具,自然是怎么方便怎么来,Type Hints 加不加都无所谓。如果是给其他人用的公共库,不加 Type Hints 对使用者很不友好。
7297 次点击
所在节点    Python
69 条回复
ch2
2023-09-06 13:21:43 +08:00
新项目,多人协作的,加了有显而易见的好处
老项目,个人 solo 的,不加也无所谓
LokiSharp
2023-09-06 13:28:57 +08:00
写了就当注释呀
BeautifulSoap
2023-09-06 13:30:44 +08:00
反正已经不用 python 写大项目了,小项目或者脚本我是不太加的,主要是 python 这 type hint 实在写起来难受死了
给 List 之类基础类型写个 type hint 还得导包
给函数指针写 type hint 要导入 Callback ,然后 Callable[[typ1, type2 ..., type3], type3] 这样不光看得闹心我写得也是闹心,尤其一个入参出参复杂点的函数
而且 idea/pycharm 不知为什么经常 type hint 工作不正常,其他地方明明都加了 type hint 了,一看创建的变量类型 Any ,摔
反正体验说不上太好
sweat89
2023-09-06 19:38:35 +08:00
不加啊,难道各位忘了用 python 的初衷?
人生苦短,我用 python
xgdgsc
2023-09-06 19:51:48 +08:00
不加,又不像 julia 加了能提升性能
julyclyde
2023-09-07 14:59:30 +08:00
@tankeco tuple 到 Tuple 是什么情况啊?
tankeco
2023-09-07 20:34:30 +08:00
@julyclyde python3.9+可以写 list[int], tuple[int],但<=3.8 需要写 import List, Tuple. 现在最流行的 python 版本就是 3.8-3.10 ,所以经常遇到代码,明明其实是可以支持 3.8 的,只是因为 type hint 不支持 3.8 ,就非常令人难受
VforVendetta
2023-09-11 10:02:48 +08:00
目前没加
xzm429438709
2023-10-04 11:46:05 +08:00
我想加,怕自己写了代码,放假回来忘记逻辑了,但是有时候自私点又不想加,不想别人太容易知道我的逻辑,就不加

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

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

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

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

© 2021 V2EX