如何看待类型提示?

yzk66880 14天前 8

目前我已知的类型提示带来的好处:
- debug 时的错误提示,结合编辑器也会有注释提示等
- 提升可读性、维护性
- ... (请教大家补充~)
还有就是最近的 web 框架 fastapi, 如果按照 pydantic 的类型提示和数据建模的话可以自动生成符合 OpenAPI 标准的 swagger 调试文档。个人感觉这个还是很有用的。

但是类型提示不是类型声明,对提升性能也无用处,大家觉得 python 这个动态语言有必要养成写类型提示的习惯吗?

说道可读性,其实 typing 模块有些定义的可读性不是那么一目了然,也需要一定的学习成本...

希望听听大家的看法
最新回复 (9)
  • nightwitch 11天前
    引用 2
    写起来也方便点啊。 假如你确定下面这个函数只接收字符串,当然最好加上。不加的话,编辑器没法推断 s 的类型,也没法给出更好的补全提示。
    def process_string(s):
    return s.do_something()
  • szzhiyang 11天前
    引用 3
    可以参考我之前发的两个帖子下的讨论:

    《同是静态类型检查,为什么 Python 圈对 Type Hints 的重视程度明显不及前端圈对 TypeScript 的重视程度?》

    t/606977

    《大家是如何实时检查 Python 变量类型的?》

    t/602617
  • szzhiyang 11天前
    引用 4
    可以参考我之前发的两个帖子下的讨论:

    《同是静态类型检查,为什么 Python 圈对 Type Hints 的重视程度明显不及前端圈对 TypeScript 的重视程度?》

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

    《大家是如何实时检查 Python 变量类型的?》

    https://www.v2ex.com/t/602617
  • 楼主 yzk66880 11天前
    引用 5
    @szzhiyang 好的 感谢~
  • fhsan 11天前
    引用 6
    写文档和类型检查必须的啊,项目大了多了,一个负责几个系统,前后端,
    如果每次都靠运行才能知道参数和返回值是什么样的,那不得累死
  • ungrown 11天前
    引用 7
    其实你一上来就相当准确地概括了当前阶段类型提示的意义和价值:提示(废话,拖走……
    提示开发者,提示用户,提示 IDE 软件,比如 pycharm 和 pycharm 用户们就确确实实能从 typing 获益匪浅。
    至于性能,提示只是提示,动态类型还是动态类型,运行时类型检测该绕不开还是绕不开,肥胖且非线性的数据结构导致的 CPU 缓存命中该 miss 还是 miss 。
    cpython 的性能就这么回事了,高 IO 应用基本不拖后腿,高 CPU 应用肯定拖后腿,如果这后腿拖不起的话就老老实实写 C 扩展。说白了要性能就得放弃动态类型嘛,反正有 cython,改静态类型也不难。
    说回 typing,typing 就是通过提示来强化开发和使用的体验的。
    至于 typing 的学习成本,反正我都是现用现查现学现封装现扔的,我觉得大家也可以这么弄。
  • 楼主 yzk66880 11天前
    引用 8
    @ungrown 谢谢,的确是这样的现状
  • wuwukai007 11天前
    引用 9
    多人项目 用,自己项目真的懒得写,实话
  • 楼主 yzk66880 11天前
    引用 10
    @wuwukai007 hhhh 真相
  • 游客
    11
返回