V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zywscq
V2EX  ›  Python

Python 的类型提示越来越复杂了: Python3.13 又引入了类型注解新特性

  •  1
     
  •   zywscq · 15 天前 · 4948 次点击

    作为一个老 Python 开发,看了这篇 3.13 的类型注解新特性解读之后,头有点冷: https://medium.com/techtofreedom/7-new-typing-features-in-python-3-13-58caae5f2f10?sk=6ee66766ba372ea1f62b44a0ef08012d

    34 条回复    2024-10-11 11:17:41 +08:00
    passive
        1
    passive  
       15 天前 via Android   ❤️ 13
    Whatever the world was like when I was 20 is perfect, everything before that is too old, everything after that is too new.
    billccn
        2
    billccn  
       15 天前   ❤️ 1
    这些功能在很多其他语言里面都有,但非要取个跟其他语言都不一样的名字。。。
    tairan2006
        3
    tairan2006  
       15 天前
    还好,反正 type hint 本来就是可选的

    但是这玩意我是真记不住…
    dragondove
        4
    dragondove  
       15 天前
    @billccn 没明白是指哪几个特性,在其他语言里等价的概念是什么
    june4
        5
    june4  
       15 天前   ❤️ 2
    以前写 py 还是没有类型注解的时候,现在一看 py 的类型好奇怪的样子,类型竟然还是具体的可导入可操作的实际对象,感觉是拿现成的锤子做了把剪刀,写多了 typescript 不知道 py 这种类型写起来是什么感觉,有没有类型体操
    zcf0508
        6
    zcf0508  
       15 天前 via Android
    crackidz
        7
    crackidz  
       15 天前
    还好吧,也没多很多很复杂的东西啊
    wangee
        8
    wangee  
       15 天前 via iPhone
    如果只是这篇 blog 里面的东西,感觉没有添加太多东西
    panxi
        9
    panxi  
       15 天前
    @zcf0508 好东西啊 大兄弟
    clino
        10
    clino  
       15 天前
    等 AI 编程助手都支持了是不是就不太成为负担了
    nyxsonsleep
        11
    nyxsonsleep  
       15 天前
    @june4 #5 python 类型是可选的,体验还是比 ts 好一点的。
    Hookery
        12
    Hookery  
       15 天前
    动态语言在向静态语言贴贴,静态语言在向动态语言贴贴,啥时候整个大一统好了。。
    kneo
        13
    kneo  
       15 天前 via Android
    逆水行舟,不进则退。
    est
        14
    est  
       15 天前
    别的还好,就是 TypeIs 太 2 了。。。还不如做多态和 multi-dispatch 。。。
    leven87
        15
    leven87  
       15 天前
    大佬们都买了 medium 会员吗,不是会员只能看个开头。
    nagisaushio
        16
    nagisaushio  
       15 天前 via Android   ❤️ 16
    这是 OP 自己的文章,OP 大可不必装路人推广

    尤记得“国外一小哥”
    yy77
        17
    yy77  
       15 天前
    可是 python 语言本身没有 type 检查呀。你再怎么写得完善,返回一个不一样的类型也不会报错。
    还得依靠 ide 或者 linter 。
    xgdgsc
        18
    xgdgsc  
       15 天前 via Android
    @Hookery 已经有了 https://www.tongyuan.cc/release/syslab 可以把类型稳定的 Julia 代码编译成二进制或者 cpp 代码
    jackerbauer
        19
    jackerbauer  
       15 天前
    花里胡哨的
    NoOneNoBody
        20
    NoOneNoBody  
       15 天前
    通篇没有用到 pandas 的 namespace ,为了检查 dataframe 类型,还要 import 一次,这是我最头疼的地方
    Ocean810975
        21
    Ocean810975  
       15 天前   ❤️ 1
    @leven87 #15 作者给的分享链接是 friend link ,按理说你注册了不开会员也能看,或者你有啥防跟踪浏览器扩展给「?sk=xxx 」那部分移除了。
    relsoul
        22
    relsoul  
       15 天前
    @june4 写的很乱七八糟...体验不如 ts ,都需要 import ,而且定义 type[] 这种的不如 ts 好写,有一瞬间会让我感觉 类型不是提示吗 怎么跟个实际变量一样.... 而且定义嵌套类型太麻烦了,我直接选择用 pydantic 定义 还方便,运行时也有对应的提示,直接完爆默认的 python 类型定义,(虽然 pydantic 也要基于 python 的类型使用,但是至少让我写起来是一个 d.ts 的感觉)
    abc1310054026
        23
    abc1310054026  
       15 天前   ❤️ 1
    OP medium 上 1w 多的 follower 还需要搞这种迎流吗。。。
    ferock
        24
    ferock  
       15 天前 via iPhone   ❤️ 2
    自己看自己写的文章以后自己头有点冷?干嘛自虐?
    DOLLOR
        25
    DOLLOR  
       15 天前
    类型检查+自动推导 是大势所趋。
    现在新出的编程语言,类型检查+自动推导 基本都是标配了。
    老一辈编程语言 python 、js 、lua 要是不想被历史抛弃,也都推出自己的类型系统了。
    est
        26
    est  
       15 天前
    @nagisaushio
    @Ocean810975
    @abc1310054026
    @ferock

    这几位老哥火眼金睛。。。
    mark2025
        27
    mark2025  
       15 天前
    @DOLLOR ts 的类型,js 的灵活,感觉太好用了
    nagisaushio
        28
    nagisaushio  
       15 天前 via Android   ❤️ 1
    @est 这 op 发了好几次我都记住 id 了
    Trim21
        29
    Trim21  
       15 天前
    这 ReadOnly 居然只能给 TypedDict 用。。。
    XIVN1987
        30
    XIVN1987  
       14 天前
    这个没办法,,所有编程语言都有这个趋势,,越来越复杂、语法规则越来越多。。

    唯一的例外是 C ,,几十年了语法很少扩展。。不过除了写驱动的、写嵌入式的,,应该很少有人用 C 了。。
    nianlifeixing
        31
    nianlifeixing  
       14 天前
    还好类型提示是非强制性的,我经常看到我同事写的函数的返回类型是不对的,不过丝毫不影响,属实是有点误解了
    ddddd0
        32
    ddddd0  
       13 天前
    @nagisaushio #16 确实挺无语
    lolizeppelin
        33
    lolizeppelin  
       3 天前
    我真 TM 服了...看了现在的兼容代码..以前只要区分 py2 和 py3...
    现在的兼容代码....直接喷了
    lolizeppelin
        34
    lolizeppelin  
       3 天前
    @yy77
    typescript 还不是一条卵样....这有啥区别
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1089 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:24 · PVG 02:24 · LAX 11:24 · JFK 14:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.