match 语句(结构模式匹配)比 if-else 语句更快吗?

Gag*_*ngh 9 python python-3.x

免责声明

我目前正在学习Java,我遇到了if-elseandswitch语句,并且我了解到Switch 语句比 if-else 语句稍快

我很熟悉,每当我们创建一些东西(定义函数和东西)时,Python 就会添加很多样板文件,这些样板文件可以通过使用dis函数反汇编它们来看到。

问题:

match语句比if-elsePython更快吗?使用它来代替传统的if-else语句是不是更有效率?

如果您不熟悉语句,请参阅PEP 636 - 结构模式匹配match教程的链接。

The*_*der 2

是的,据我所知,match/case 结构通常比 if/elif/else 结构更快。尽可能在 if/elif/else 结构上使用它们。Match/case 结构可以检查变量是否等于某个值,但它们不能执行复杂的条件,因此您仍然会大量使用 if/elif/else 结构(例如,if var and not var2:只能使用 if/elif/else结构)。

  • “据我所知”——你的信念的基础是什么?有证据或理论依据吗? (6认同)
  • 请参阅[守卫](https://www.python.org/dev/peps/pep-0622/#id8) (4认同)