Python Glossary English

Python 3.10+astпонятие

ast.MatchSingleton

сопоставление с образцом

Образец case None, case True или case False: value хранит сам объект, а совпадение проверяется через is, а не ==.

Синтаксис

ast.MatchSingleton(value)

Из-за is 'case True:' не совпадает с 1, хотя 1 == True; так же 'case False:' не ловит 0, а 'case 1:' (MatchValue) совпадёт и с True. В поле value лежит Python-объект, а не узел Constant, — в отличие от MatchValue, где value — выражение.

Примеры

import ast
p = ast.parse('match x:\n    case None: pass').body[0].cases[0].pattern
print(type(p).__name__, p.value)  # → MatchSingleton None
def kind(v):
    match v:
        case True:
            return 'True'
        case 1:
            return 'one'
    return 'other'
print(kind(1), kind(True))  # → one True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности