大家现在写 Python , 用类型注解吗

2024-04-24 16:57:32 +08:00
 iorilu

想了解下看看, 可以是几种情况

我现在也就是第二种把, 想起来就用一点 , 也没强制整个项目都用,现在想要不要升级下, 更严格一点呢

5358 次点击
所在节点    Python
57 条回复
lLuO0WljRTqf
2024-04-25 09:57:12 +08:00
不写,因为不好看。有点背离写 Python 代码简洁的初衷。
根据必要程度从低到高我一般会划分为以下几类:
1. 通过变量命名,比如(datalist)之类;
2. 在函数注解中标明;
3. 通过 if 对变量类型进行判断,或 raise Error ,或可传入不同类型来获取结果,常面对的场景就是可传文件或者字符串;
4. 某些特殊情况下通过 assert 卡住过往的值。
没错,就是不想写。因为敲起来很麻烦。看起来感觉不够简洁,不美。
个人之见。
Pters
2024-04-25 10:21:16 +08:00
用啊,因为 copilot 自己就会带出来
moqsien
2024-04-25 10:33:15 +08:00
不写 python 了,写 go ,哈哈
bwangel
2024-04-25 10:45:32 +08:00
python 中装饰器挺常见的,我发现给装饰器写个类型注解还是挺困难的。

主要的困难点在于,要求装饰器修饰的函数,类型要一致。多人开发的时候,这个保证有点难。
Rebely
2024-04-25 12:12:03 +08:00
用, 谁用谁爽
Zy143L
2024-04-25 13:17:59 +08:00
先不写,然后 Ai 补全自动处理
uni
2024-04-25 14:40:27 +08:00
写,目标是 vscode 开 basic 检查不报红
但是 vscode 里面的类型检查还是有不少 bug 的,复杂一点的类型体操就有可能出问题,也是无奈
gesse
2024-04-25 14:48:55 +08:00
gauthier
2024-04-25 16:25:37 +08:00
第三种,函数用。
xxxccc
2024-04-25 17:19:01 +08:00
需要 code review 的写,不需要 code review 的不写
HashV2
2024-04-25 18:06:27 +08:00
之前全用,现在写的一个项目要编译成 c ,如果类型注解写的不准确运行到这块的时候会报错,就很无语,导致现在这个项目的类型注解写的很谨慎
llsquaer
2024-04-26 10:44:30 +08:00
看来大家都一样嘛。 我是函数中参数不能一眼看出来的就写。。没有智能提示的也写。方便自动提示。
craiiz
2024-04-26 10:53:37 +08:00
函数, 变量所有全部用; 写完之后 pycharm 联想很舒服
Vaspike
2024-04-26 13:17:32 +08:00
第四种,除非:
一眼就能看出什么类型的变量和根本找不到具体类型的变量(来自其他库的返回值)
FYFX
2024-05-01 19:36:16 +08:00
写,不过高阶函数那个 Callable 写着真恶心,我的感觉是 python 的类型推导太弱了,有些情况 typehint 写起来比静态类型还麻烦
moudy
2024-05-02 15:36:20 +08:00
@NoOneNoBody #4 3.12 省事了很多,Union[list, None] 可以直接写成 list|None
dule
2024-07-09 15:07:23 +08:00
自己写的暂时没加,感觉代码可读性更差,略丑,都要强类型了写什么 python

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

https://ex.noerr.eu.org/t/1035332

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

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

© 2021 V2EX