Захоплення шаблонів
Оновлено: 24.04.2023
Шаблон захоплення прив’язує значення теми до імені. Синтаксис:
capture_pattern ::= !'_' NAME
Одне підкреслення _ не є шаблоном захоплення (це те, що !'_'' виражає). Натомість він розглядається як wildcard_pattern.
У заданому шаблоні дане ім’я може бути пов’язане лише один раз. наприклад case x, x: ... недійсний, тоді як case [x] | x: ... дозволено.
Захоплення шаблонів завжди вдається. Зв’язування відповідає правилам області видимості, встановленим оператором виразу присвоєння в PEP 572; ім’я стає локальною змінною в найближчій області видимості функції, якщо немає відповідного оператора global або nonlocal.
Простіше кажучи, NAME завжди матиме успіх і встановлюватиме NAME = .