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 3.12 的 5 大实用新特性

  •  
  •   zywscq · 2023-12-24 07:31:15 +08:00 · 4411 次点击
    这是一个创建于 369 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 一种新的类型声明来创建类型别名
    2. 更精确的 **kwargs 类型标注:结合 TypedDict 和 Unpack"
    3. f-字符串的功能更加强大了
    4. 新的 @override 装饰器
    5. 部分错误信息能提供更多详情

    详情参阅本篇英文文章: https://medium.com/techtofreedom/5-handy-python-3-12-new-features-that-improve-your-coding-experience-fe2d6e1f05b4?sk=3a754a89024869c97691d48b87a31870

    16 条回复    2023-12-25 09:18:20 +08:00
    passive
        1
    passive  
       2023-12-24 08:20:59 +08:00 via Android
    越来越有 20 年前的 Perl 的感觉了
    Goooooos
        2
    Goooooos  
       2023-12-24 09:13:24 +08:00
    f 字符串的功能看着更复杂了
    popil1987
        3
    popil1987  
       2023-12-24 09:13:52 +08:00
    再加就木有简单性了,新人不愿使用了,也别多线程了,最多使劲增加性能就好了。语法方面真的比 javascript 好多了
    RVRGnXxwawP5kwKW
        4
    RVRGnXxwawP5kwKW  
       2023-12-24 09:41:45 +08:00 via iPhone
    @popil1987 同感。js 那语法,头皮发麻。
    june4
        5
    june4  
       2023-12-24 10:09:26 +08:00
    不同感,不如 js ,语法更简单,表达力更强(多行匿名函数等),包系统更简单方便,ts 类型强得多,性能更是数量级碾压。
    NessajCN
        6
    NessajCN  
       2023-12-24 10:11:34 +08:00
    语法方面啥时候 lambda 能跟 () => {} 一样好用就好了
    Muniesa
        7
    Muniesa  
       2023-12-24 10:58:09 +08:00 via Android
    @popil1987 我倒觉得还好,因为简单的语法都还在,全靠简单的语法也能完成大部分任务,新人刚学也用不上类型标注装饰器这种东西
    bestcondition
        8
    bestcondition  
       2023-12-24 11:16:13 +08:00 via Android
    @NessajCN 不行,因为 python 靠缩进区分代码块
    009694
        9
    009694  
       2023-12-24 11:35:16 +08:00 via iPhone   ❤️ 1
    @popil1987 简单性又不是语法决定,是抽象决定的。。c 只有十几个关键字,半小时就能全部学完,c 简单吗?
    565656
        10
    565656  
       2023-12-24 14:18:59 +08:00
    @Goooooos #2 挺好的,不用套单引号双引号了,自动识别
    DOLLOR
        11
    DOLLOR  
       2023-12-24 14:42:42 +08:00
    @popil1987
    python 好好当个胶水就好了,没必要追求性能。因为追求性能,也是有代价的,JS 就是个例子。
    em70
        12
    em70  
       2023-12-24 14:46:31 +08:00
    用了这些新特性的库,要求至少 3.12,适配环境成本就高了,能不用尽量不用
    crackidz
        13
    crackidz  
       2023-12-24 16:57:27 +08:00
    @DOLLOR 你是指所有都用 JS 重写吗
    DOLLOR
        14
    DOLLOR  
       2023-12-24 18:50:39 +08:00 via Android
    @crackidz JS 性能好,但也要在别的地方付出相应的代价。比如更高的内存占用,更大的运行时体积,而且 JS 调用 C/C++模块也不如 python 方便。
    F7TsdQL45E0jmoiG
        15
    F7TsdQL45E0jmoiG  
       2023-12-25 09:03:06 +08:00
    python 越来越变味儿,捏着鼻子用
    vialon17
        16
    vialon17  
       2023-12-25 09:03:40 +08:00
    感觉把 glc 干掉,把性能优化下,py 会更加完美点;
    语法糖方面其实做的挺好的,感觉不需要添加新的 feature 。
    XIVN1987
        17
    XIVN1987  
       2023-12-25 09:18:20 +08:00
    这 5 个更新也没添加什么新东西

    1 、这个还挺合理的,,看起来也很简单、清晰,,没啥学习成本
    2 、这个理由很充分,,但感觉加 Unpack 没必要,,也许未来会简化语法(就比如 3.10 中使用 int | str 取代原有的 Union[int, str])
    3 、这个也没啥学习负担吧,,就是 f-string 里相同括号可以嵌套了
    4 、就添加了一种装饰器而已,,装饰器属于 Python 基本语法了,,
    5 、这个就更没学习成本了。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1164 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:33 · PVG 02:33 · LAX 10:33 · JFK 13:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.