Python Glossary English

Python 3.10+astпонятие

ast.MatchSequence

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

Образец-последовательность case [a, b] или case (a, b): patterns — образцы элементов, один из них может быть MatchStar.

Синтаксис

ast.MatchSequence(patterns)

Квадратные и круглые скобки дают одинаковый узел и одинаково совпадают с list и tuple — 'case (a, b)' поймает и [1, 2]. Строки, bytes и bytearray под образец-последовательность не подходят никогда, хотя это последовательности: 'case [a, b]' не совпадёт с 'ab'. Без * длина должна совпасть точно.

Примеры

import ast
p = ast.parse('match x:\n    case (a, *rest): pass').body[0].cases[0].pattern
print(type(p).__name__, [type(q).__name__ for q in p.patterns])  # → MatchSequence ['MatchAs', 'MatchStar']
def f(v):
    match v:
        case (a, b):
            return 'pair'
    return 'no'
print(f([1, 2]), f('ab'))  # → pair no

См. также

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