我不明白為什么以下python 3.10+代碼是無效語法:
match prop.type:
case ns.Instance(content := ns.Class(name)) if name is not None:
continue
對我來說,這與那里記錄的海象圖案相匹配。怎么了?我得到以下錯誤:
case ns.Instance(content := ns.Class(name)) if name is not None:
^^
SyntaxError: invalid syntax
此外,pylace
向我顯示了以下錯誤(在編輯器中):
case ns.Instance(content := ns.Class(name)) if name is not None:
^
"(" was not closed
And further
case ns.Instance(content := ns.Class(name)) if name is not None:
^
Expected ":"
不確定這在多大程度上是相關(guān)的,但Instance
的定義是:
@dataclass
class Instance(Type):
content: Type
海象圖案并不存在。您看到的是原始模式匹配方案的被取代的PEP。那里的語法并不完全是最終實現(xiàn)的。
你應(yīng)該看看PEP 634,特別是
as
模式,它取代了海象模式: