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

290 天前
 iorilu

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

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

4764 次点击
所在节点    Python
57 条回复
vituralfuture
290 天前
借个楼,各位写 typehint 的时候遇到异步生成器函数没有实现的的情况下如何处理的

异步生成器,即函数体有 yield 的异步函数,没有实现即它的具体实现在子类中,父类仅仅提供一个接口。如果使用诸如 mypy 这样的严格静态类型检查器,只写个 pass ,因为没有 yield 语句,mypy 就会认为返回类型不是生成器所以报错

我想到了一个办法就是 yield from 这个函数自己,让 mypy 自己绕圈去,但感觉不够优雅,说到底还是破坏了可读性,用 pass 可以表示函数体为空,没有逻辑。而 yield from 有迷惑性
jfcherng
290 天前
@vituralfuture #21

def f():
... return
... yield
jfcherng
290 天前
@vituralfuture #21 不對啊 具體實現在子類的話, 直接 @abstractmethod 不就完事了麼
chengxiao
290 天前
都写注解了 我为什么不用 golang
wupher
290 天前
最开始是一点不用。那时 py , Ruby, js ,更习惯于 duck type 。

后来习惯了 Kotlin, Go ,现在尽量全部用。
vincent7245
290 天前
用,而且我规定公司所有 Python 项目都得用
sunrisewestern
290 天前
用 AI 加类型提示
lijiangang886
290 天前
一个直观的体验提升:写类型注解可以帮助 IDE 进行更好的静态分析,从而提升补全等功能的体验
XueXianqi
290 天前
response: str = "写,都写,不然就是 “不写一时爽,维护火葬场”"
print(response)
jiayouzl
290 天前
工作代码用,自己用的代码从来不写.
ktyang
290 天前
比 2 强比 3 差。。。基本重要的都会用
mark2025
290 天前
有了那么好的 TS ,还是不少人喜欢无类型的 JS ,py 一样的 ~
DOLLOR
290 天前
跟 TS 、JSDOC 一样,编辑器能自动推导的类型不写,只写不能自动推导的类型。
因为编辑器提供智能提示,非常爽。🐶

v1 = 'string' # 这里不写
v2 = 1 # 这里也不用写

def func(arg: SomeType) # 参数不能自动推导,要写。返回值能自动推导,不写。
MiketsuSmasher
290 天前
@vituralfuture #21 你要做的应该是个抽象类,不如直接用 abc.ABCMeta 作为父类的元类, @ abc.abstractmethod 装饰这个方法,代码块里 raise NotImplementedError ,反正抽象类也不能直接初始化。mypy 也应该识别得到这种情况。
so1n
290 天前
写,检查工具也用上
levelworm
290 天前
我觉得有点复杂的是那种库里头的类型,有时候需要写成 abc.cde.deg 这种一长串——当然可以通过 import 来解决,但是还是觉得很麻烦。C 就没这个问题。
nuk
290 天前
不用,给自己套枷锁干啥
ztmzzz
290 天前
ide 不能自动提示的时候写
locoz
290 天前
无所谓,反正就是按个 Tab 的事情,打个冒号/横杠给 AI 起个头,AI 就会自己解决这个问题,基本不需要费脑子人工调整。除了那种封装的比较深的框架里的东西 AI 都搞不明白要标啥的以外,其他东西基本都顺手就标了注解。
jiyan5
290 天前
写不写都行,反正都能运行,不是太想写

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

https://tanronggui.xyz/t/1035332

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

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

© 2021 V2EX