Почему выражение не сравнивается с шаблоном в case match?
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" и т.д., то все работает, т.е. сравнение со строкой выполняется, а сравнение с переменной не проходит, почему?
Источник: Stack Overflow на русском