Skip to content
Python 3.12 新特性:写代码更爽了
Python 3.12 上周正式发布,我第一时间升级体验了一下。
这个版本的改进集中在性能和开发体验上,很实用。
性能提升
官方说比 3.11 快 5%,我实测感觉差不多。
主要优化来自:
- 更快的异步生成器
- 减少函数调用开销
- 内存使用优化
对于日常脚本影响不大,但跑大型项目能感知到。
更好的错误提示
这个是我最喜欢的改进。
以前:
NameError: name 'resutl' is not defined现在:
NameError: name 'resutl' is not defined. Did you mean: 'result'?它会猜你想写什么!对于初学者太友好了。
还有更精确的语法错误定位:
python
# 以前只说第 5 行有错
# 现在会用 ^^^ 标记具体是哪个地方错了类型参数语法
终于不用手写 TypeVar 了:
python
# 以前
from typing import TypeVar
T = TypeVar('T')
def first(items: list[T]) -> T:
return items[0]
# 现在
def first[T](items: list[T]) -> T:
return items[0]简洁多了,和其他语言的泛型语法更接近。
f-string 改进
现在 f-string 里可以用任意表达式了:
python
# 以前会报错
f"result: {x:=10}" # 这种复杂格式以前不支持
# 现在都可以
f"data: {(lambda: x)()}"更灵活,虽然不建议写太复杂的表达式。
怎么升级
bash
# macOS
brew install python@3.12
# Windows
# 去官网下载安装包
# 或者用 pyenv
pyenv install 3.12.0
pyenv global 3.12.0建议用虚拟环境隔离,别直接替换系统 Python。
总结
Python 3.12 是一个稳健的更新。
没有破坏性改动,但很多小改进能让日常开发更顺手。 特别是错误提示改进,对学习 Python 的同学帮助很大。
