Python Morsels。通过解析Python代码来欣赏Python的匹配案例

120 阅读1分钟

Python的match-case 块是复杂的结构模式匹配工具,往往是麻烦多于价值。但是它们对于解析抽象的语法树是很好的

内容表

  1. 为什么要删除数据类?
  2. 哦,这就是那个工具的作用?
  3. 使用 "或模式 "来匹配多个子模式
  4. 带有保护句的条件模式
  5. 结构模式匹配直观地描述对象的结构
  6. 在编写解析器和匹配器时,考虑match-case

为什么要删除数据类?

首先让我们简单地谈谈我为什么要做这个工具。

为什么会有人想把一个数据类转换成 "不是数据类"?

使用数据类是有代价的:性能问题(通常不重要)和边缘案例,在这些案例中,事情会变得很奇怪(__slots__slots=True创建这个数据类到普通类的转换器的 原因是为了帮助我更好地教授数据类。 看到数据类的等价代码有助于我们欣赏数据类为我们所做的事情

好吧,让我们深入到match-case

哦,这就是那个工具的作用?

我知道我的冒险 ...

阅读全文:https://www.pythonmorsels.com/match-case-parsing-python/