Захоплення шаблонів

Оновлено: 24.04.2023

Шаблон захоплення прив’язує значення теми до імені. Синтаксис:

capture_pattern ::=  !'_' NAME

Одне підкреслення _ не є шаблоном захоплення (це те, що !'_'' виражає). Натомість він розглядається як wildcard_pattern.

У заданому шаблоні дане ім’я може бути пов’язане лише один раз. наприклад case x, x: ... недійсний, тоді як case [x] | x: ... дозволено.

Захоплення шаблонів завжди вдається. Зв’язування відповідає правилам області видимості, встановленим оператором виразу присвоєння в PEP 572; ім’я стає локальною змінною в найближчій області видимості функції, якщо немає відповідного оператора global або nonlocal.

Простіше кажучи, NAME завжди матиме успіх і встановлюватиме NAME = .