当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python ast.match_case用法及代码示例


用法:

class ast.match_case(pattern, guard, body)

match 语句中的单个案例模式。 pattern 包含将匹配主题的匹配模式。请注意,为模式生成的AST 节点与为表达式生成的节点不同,即使它们共享相同的语法。

guard 属性包含一个表达式,如果模式与主题匹配,则将评估该表达式。

body 包含在模式匹配并且评估保护表达式的结果为真时要执行的节点列表。

>>> print(ast.dump(ast.parse("""
... match x:
...     case [x] if x>0:
...         ...
...     case tuple():
...         ...
... """), indent=4))
Module(
    body=[
        Match(
            subject=Name(id='x', ctx=Load()),
            cases=[
                match_case(
                    pattern=MatchSequence(
                        patterns=[
                            MatchAs(name='x')]),
                    guard=Compare(
                        left=Name(id='x', ctx=Load()),
                        ops=[
                            Gt()],
                        comparators=[
                            Constant(value=0)]),
                    body=[
                        Expr(
                            value=Constant(value=Ellipsis))]),
                match_case(
                    pattern=MatchClass(
                        cls=Name(id='tuple', ctx=Load()),
                        patterns=[],
                        kwd_attrs=[],
                        kwd_patterns=[]),
                    body=[
                        Expr(
                            value=Constant(value=Ellipsis))])])],
    type_ignores=[])

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 ast.match_case。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。