Python 的类型检查

231 天前
 xzm429438709
Python 的 typehint 很感觉不行啊,用起来很慌,特别是 Django ,很多时候不知道变量什么类型,能不能出一个类似 typescript 这种,真的 TS 给前端续上了好几年命
1846 次点击
所在节点    Python
18 条回复
crackidz
231 天前
使用 pylance 会有类型推导,另外 stubs 有的尽量装上
noe132
231 天前
python typehint 给我的感觉就像是以前的 jsdoc ,不能说没有,但也不能说非常有用。
typescript 直接把 js 拉到和静态类型语言快一个水平了
Hstar
231 天前
python 的 typehint 只是标注,ide 帮你检查,解释器完全无视这些玩意。
既然用动态语言了,就抛弃你的类型依赖观念,一把嗦~
deorth
231 天前
typthon
不如还是直接转 go 吧
dayeye2006199
231 天前
可以弄个 git 的钩子,挂个 mypy 之类的类型检查器。把 django 的 stub 装上
cdwyd
231 天前
一直不明白写 python 为什么会有类型依赖呢?
大部分情况都能根据经验推测出来类型,推测不出来的找到定义的地方看一眼也不费事
LindsayZhou
231 天前
pytest 的时候走 mypy 过一遍呗。


@cdwyd #6
我主要是用第三方库的时候。
如果他们写了类型,不用去读他们的代码,lsp 会有更友好的提示。
特别是用了自定义类的时候,不用去翻代码和文档查有哪些方法可以用。
cdwyd
231 天前
@LindsayZhou 明白了,主要适用于调用了第三方类库,然后只是简单使用下不太值花时间得去了解熟悉具体用法的情况。
aisk
231 天前
Python 不是很早就内置了 JS 想要但是还没加进去的类型标注功能,并且有官方的 mypy 以及微软的 pyright 来做类似 typescript 工具做的工作,题主还想要什么呢?
bianhui
231 天前
一个好的变量命名足以知道参数是啥类型
jianyang
231 天前
养成做类型标准的习惯
变量 :type
函数 ->type

我现在写 GO 写习惯了,偶尔用 python 写一些简单的脚本的时候都感觉非常别扭
xzm429438709
231 天前
@aisk mypy 你用起来就知道了,typedict 很多没有 ts 的好
woodfizky
231 天前
类型注解是类型注解,类型检查是类型检查

除非你用 pydantic
aisk
231 天前
@xzm429438709 就算没有 ts 的好,也不至于像贴主说的那样,拿到变量不知道什么类型。
qq565425677
231 天前
python 的好处恰恰在于不需要知道类型也能写
vituralfuture
231 天前
我觉得 python 的 typehint 用好了效果不输 TS ,主要是以前的第三方库开发的时候 typehint 还不流行或者甚至没提出,比如 Django 对 url 做校验还需要把类型写到字符串里,然而 fastapi 已经可以利用 typehint 做校验了
vituralfuture
231 天前
而且 python 对 typehint 的支持是渐进的,也就是说一个第三方库,可以完全不使用 typehint ,也可以部分类或函数使用 typehint ,也可以完全不使用 typehint ,使用起来体验割裂。比如 opencv 安装了 stub 后,也存在类型推导无法生效的情况
junkun
230 天前
@LindsayZhou 动态语言 print(dir(X)) 就好了啊,或者 breakpoint()。最近读到一句话很是认同:类型是给机器看的。就算有类型标注还是得看文档,写 java 都是这样。

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

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

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

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

© 2021 V2EX