用法:
class ast.MatchClass(cls, patterns, kwd_attrs, kwd_patterns)
匹配类模式。
cls
是一个表达式,给出了要匹配的名义类。patterns
是要与类定义的模式匹配属性序列匹配的模式节点序列。kwd_attrs
是要匹配的附加属性序列(在类模式中指定为关键字参数),kwd_patterns
是相应的模式(在类模式中指定为关键字值)。如果主题是指定类的实例,则此模式成功,所有位置模式都匹配相应的class-defined 属性,并且任何指定的关键字属性都匹配其相应的模式。
注意:类可以定义一个返回 self 的属性,以便将模式节点与正在匹配的实例进行匹配。几种内置类型也以这种方式匹配,如 match 语句文档中所述。
>>> print(ast.dump(ast.parse(""" ... match x: ... case Point2D(0, 0): ... ... ... case Point3D(x=0, y=0, z=0): ... ... ... """), indent=4)) Module( body=[ Match( subject=Name(id='x', ctx=Load()), cases=[ match_case( pattern=MatchClass( cls=Name(id='Point2D', ctx=Load()), patterns=[ MatchValue( value=Constant(value=0)), MatchValue( value=Constant(value=0))], kwd_attrs=[], kwd_patterns=[]), body=[ Expr( value=Constant(value=Ellipsis))]), match_case( pattern=MatchClass( cls=Name(id='Point3D', ctx=Load()), patterns=[], kwd_attrs=[ 'x', 'y', 'z'], kwd_patterns=[ MatchValue( value=Constant(value=0)), MatchValue( value=Constant(value=0)), MatchValue( value=Constant(value=0))]), body=[ Expr( value=Constant(value=Ellipsis))])])], type_ignores=[])
相关用法
- Python ast.MatchAs用法及代码示例
- Python ast.MatchValue用法及代码示例
- Python ast.MatchStar用法及代码示例
- Python ast.MatchSequence用法及代码示例
- Python ast.MatchOr用法及代码示例
- Python ast.MatchMapping用法及代码示例
- Python ast.MatchSingleton用法及代码示例
- Python ast.ListComp用法及代码示例
- Python ast.Lambda用法及代码示例
- Python ast.IfExp用法及代码示例
- Python ast.Return用法及代码示例
- Python ast.Subscript用法及代码示例
- Python ast.alias用法及代码示例
- Python ast.Slice用法及代码示例
- Python ast.NamedExpr用法及代码示例
- Python ast.Try用法及代码示例
- Python ast.Assert用法及代码示例
- Python ast.Break用法及代码示例
- Python ast.Load用法及代码示例
- Python ast.Set用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 ast.MatchClass。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。