Python接受的模式匹配

2021-02-10 03:48:25

经过一些讨论,Python指导委员会已经接受了有争议的提议,即在该语言中添加模式匹配原语。"我们承认模式匹配对Python进行了广泛的更改,并且在整个社区中达成共识几乎是不可能的。对于这些语义学和语法的不同方面,不同的人有保留或担心的想法(督导委员会也是如此)。尽管如此,经过深思熟虑,审查了围绕这些PEP的所有对话,竞争性提案和现有民意测验的结果,并与PEP作者进行了数次面对面的讨论之后,我们相信PEP 634等中指定的PatternMatching等内容,将是Python语言的重要补充。" [Python-Dev]接受模式匹配PEP 634、635、636,拒绝PEP 640和642

经过深思熟虑,Python指导委员会很高兴地宣布,我们已选择接受PEP 634及其配套的PEP 635和636(统称为模式匹配PEP)。我们承认模式匹配对Python进行了广泛的更改,并且在整个社区中达成共识几乎是不可能的。对于这些语义学和语法的不同方面,不同的人有保留或担心的想法(督导委员会也是如此)。尽管如此,经过深思熟虑,审查了围绕这些PEP的所有对话,竞争性提案和现有民意测验的结果,并与PEP作者进行了数次面对面的讨论之后,我们相信PEP 634等中指定的PatternMatching等内容,我们还将认识到,在文档的教程部分和语言参考中,这么大的新功能都需要随附全面的文档和规范。我们认为,在Python 3.10的第一个发行版中必须存在这种高质量文档,因此应将其缺失视为发行版阻止程序。我们认为PEP或任何可能的外部文档都不足够。同时,我们拒绝PEP 640和642。这两个PEP都得到了核心开发人员的很少支持。 PSC 642提出的语法似乎不像解决PEP 634语法中锯齿状边缘的正确方法,尽管SC理解了改进模式匹配提议那些方面的愿望。关于此,我们还要提一下在PEP之上构建的更改仍然可以通过PEP流程通过常规渠道(例如python-dev或https://discuss.python.org/中的讨论)通过PEP流程提交634(甚至是PEP 640和642,如果他们现在获得了支持)。