Nea*_*roo 0 python python-3.x python-3.10
我不明白为什么以下 python 3.10+ 代码是无效语法:
match prop.type:
case ns.Instance(content := ns.Class(name)) if name is not None:
continue
Run Code Online (Sandbox Code Playgroud)
对我来说,这与那里记录的海象模式相匹配。怎么了?我收到以下错误:
case ns.Instance(content := ns.Class(name)) if name is not None:
^^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
此外,pylace还向我显示以下错误(在编辑器中):
case ns.Instance(content := ns.Class(name)) if name is not None:
^
"(" was not closed
Run Code Online (Sandbox Code Playgroud)
并进一步
case ns.Instance(content := ns.Class(name)) if name is not None:
^
Expected ":"
Run Code Online (Sandbox Code Playgroud)
不确定这在多大程度上相关,但 的定义Instance是:
case ns.Instance(content := ns.Class(name)) if name is not None:
^^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
海象图案不存在。您正在查看原始模式匹配提案的被取代的 PEP。那里的语法并不完全是最终实现的。
您应该查看PEP 634,特别是asmodels,它取代了海象模式:
case ns.Instance(ns.Class(name) as content) if name is not None:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
353 次 |
| 最近记录: |