Python 匹配大小写模式中是否可以换行?

Bad*_*Zen 0 python code-formatting match

我想要一个match具有相当长的 OR 模式的模式,例如:

match item:
   case Really.Long.Qualified.Name.ONE | Really.Long.Qualified.Name.TWO | Really.Long.Qualified.Name.THREE | Some.Other.Patterns.Here:
      pass 
Run Code Online (Sandbox Code Playgroud)

这对于单行来说显然非常烦人。但是,PyCharm 似乎不会像往常一样警告长线,并且如果我使用换行符(即使它已转义),则会报告语法错误。

有什么方法可以更好地格式化此代码,或者整个模式必须在一行上?是否有明确的来源可以证明这一点 - 我在 PEP 中找不到它用于匹配/案例或特别是。

如果是后者,为什么要做出这样的语言设计决策?好像……不太好……

PIG*_*208 6

您可以将此类链式表达式括在一对括号内。

match item:
   case (
      Really.Long.Qualified.Name.ONE |
      Really.Long.Qualified.Name.TWO |
      Really.Long.Qualified.Name.THREE |
      Some.Other.Patterns.Here
   ):
      pass
Run Code Online (Sandbox Code Playgroud)