添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

假设x是通过调用第三方API拿回来的数据,a、b、c、d这些key本以为都是存在的key,运行:

上面是python3.10及更早版本抛出的异常,subable 指下标的意思,这的意思是说 int 对象没有下标,只有字典和列表这样的对象才有。看错误日志很难定位到底是哪个int对象不能subable。你要挨个去调试才知道。

Python3.11版本给出了更人性化的错误提示, ^^^ 标记的位置就是真正报错的地方。

另外, BaseException 还添加了一个 add_note 方法,我们可以在捕获异常时加入一些附加信息方便后续的bug定位。

def main -> None :

try :

raise TypeError( "bad type" )

except TypeError as e:

e.add_note( "这是一段附加信息" )

logging.exception(e)

支持TOML格式文件解析

TOML是一种比YAML更清晰的配置文件格式,现在Python3.11直接内置了标准库来解析TOML文件。

import pprint

import tomllib

with open( "test.toml" , "rb" ) as f:

data = tomllib.load(f)

pprint.pprint(data)

toml文件

a = "a"

b = "b"

c.x = "c.x"

c.y = "c.y"

x = "d.x"

y = "d.y"

[[e]]

x = "e[0].x"

y = "e[0].y"

[[e]]

x = "e[1].x"

y = "e[1].y"

[f.A]

x.y = "f.A.x.y"

[f.B]

x.y = """

[f.C]

points = [

{ x=1, y=1, z=0 },

{ x=2, y=4, z=0 },

{ x=3, y=9, z=0 },

解析出来的字典对象是:

更丰富的类型提示

新增 Self 类型

以前在类中定义一个方法如果要声明返回值是类本身的实例,要写成类的字符串形式,哪天要是给这个类重命名,这个字符串也得跟着改。Python3.11新增了 Self 后方便不少。

新增字符串枚举StrEnum

python3.10前定义一个字符串枚举时,只能继承Enum类,现在可以直接继承 StrEnum 类了,它是字符串 str 的子类。所以枚举值也是个字符串, 现在可以直接用枚举值与字符串做比较,而不需要像3.10一样先获取 value

性能方面,python3.11对解释器做了不少优化,整体性能比3.10提高了10~60%。这要归功于一个叫 Faster CPython的项目,Faster CPython 是一个由微软赞助,Python 之父 Guido van Rossum、微软高级软件工程师 Eric Snow 和 Mark Shannon 共同负责该项目。可以预计未来Python还会更快。

PS:这篇文章排版花了我半个小时,但依然没有达到我想要的效果。话说,只要是有代码的文章排版就很费时,朋友们有没有可推荐的能支持markdown的微信编辑器,视觉效果看起来要尽量简洁一点 返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
发布于: 山西省