Почему выражение не сравнивается с шаблоном в case match?

Рейтинг: 0Ответов: 2Опубликовано: 07.01.2023

Python 3.11. Пример кода:

number = 1
num1 = 2
num2 = 4
num3 = 1

match number:
    case num1:
        print("num1")
    case num2:
        print("num2")
    case num3:
        print("num3")
    case _:
        print("number")

Получаю ошибку:

case num1:
     ^^^^
SyntaxError: name capture 'num1' makes remaining patterns unreachable

Почему 'num1' делает остальные шаблоны недоступными?

Но если заменить переменные num1, num2, num3 на строки, например "num1" и т.д., то все работает, т.е. сравнение со строкой выполняется, а сравнение с переменной не проходит, почему?

Ответы

Ответов пока нет.