用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。