1
crackidz 2023-09-28 11:15:37 +08:00
使用 pylance 会有类型推导,另外 stubs 有的尽量装上
|
2
noe132 2023-09-28 11:24:19 +08:00
python typehint 给我的感觉就像是以前的 jsdoc ,不能说没有,但也不能说非常有用。
typescript 直接把 js 拉到和静态类型语言快一个水平了 |
3
Hstar 2023-09-28 12:08:14 +08:00
python 的 typehint 只是标注,ide 帮你检查,解释器完全无视这些玩意。
既然用动态语言了,就抛弃你的类型依赖观念,一把嗦~ |
4
deorth 2023-09-28 12:11:34 +08:00 via Android
typthon
不如还是直接转 go 吧 |
5
dayeye2006199 2023-09-28 12:13:22 +08:00
可以弄个 git 的钩子,挂个 mypy 之类的类型检查器。把 django 的 stub 装上
|
6
cdwyd 2023-09-28 12:14:21 +08:00 via Android
一直不明白写 python 为什么会有类型依赖呢?
大部分情况都能根据经验推测出来类型,推测不出来的找到定义的地方看一眼也不费事 |
7
LindsayZhou 2023-09-28 12:27:46 +08:00
pytest 的时候走 mypy 过一遍呗。
@cdwyd #6 我主要是用第三方库的时候。 如果他们写了类型,不用去读他们的代码,lsp 会有更友好的提示。 特别是用了自定义类的时候,不用去翻代码和文档查有哪些方法可以用。 |
8
cdwyd 2023-09-28 12:40:19 +08:00 via Android
@LindsayZhou 明白了,主要适用于调用了第三方类库,然后只是简单使用下不太值花时间得去了解熟悉具体用法的情况。
|
9
aisk 2023-09-28 13:19:21 +08:00
Python 不是很早就内置了 JS 想要但是还没加进去的类型标注功能,并且有官方的 mypy 以及微软的 pyright 来做类似 typescript 工具做的工作,题主还想要什么呢?
|
10
bianhui 2023-09-28 13:41:56 +08:00
一个好的变量命名足以知道参数是啥类型
|
11
jianyang 2023-09-28 13:42:31 +08:00
养成做类型标准的习惯
变量 :type 函数 ->type 我现在写 GO 写习惯了,偶尔用 python 写一些简单的脚本的时候都感觉非常别扭 |
12
xzm429438709 OP @aisk mypy 你用起来就知道了,typedict 很多没有 ts 的好
|
13
woodfizky 2023-09-28 15:03:19 +08:00
类型注解是类型注解,类型检查是类型检查
除非你用 pydantic |
14
aisk 2023-09-28 17:14:38 +08:00
@xzm429438709 就算没有 ts 的好,也不至于像贴主说的那样,拿到变量不知道什么类型。
|
15
qq565425677 2023-09-28 17:56:07 +08:00
python 的好处恰恰在于不需要知道类型也能写
|
16
vituralfuture 2023-09-28 18:36:57 +08:00 via Android
我觉得 python 的 typehint 用好了效果不输 TS ,主要是以前的第三方库开发的时候 typehint 还不流行或者甚至没提出,比如 Django 对 url 做校验还需要把类型写到字符串里,然而 fastapi 已经可以利用 typehint 做校验了
|
17
vituralfuture 2023-09-28 18:41:12 +08:00 via Android
而且 python 对 typehint 的支持是渐进的,也就是说一个第三方库,可以完全不使用 typehint ,也可以部分类或函数使用 typehint ,也可以完全不使用 typehint ,使用起来体验割裂。比如 opencv 安装了 stub 后,也存在类型推导无法生效的情况
|
18
junkun 2023-09-29 14:00:12 +08:00
@LindsayZhou 动态语言 print(dir(X)) 就好了啊,或者 breakpoint()。最近读到一句话很是认同:类型是给机器看的。就算有类型标注还是得看文档,写 java 都是这样。
|