Почему ключевое слово match в Python 3.10 может быть именем переменной или функции? [дубликат]

Я не совсем понимаю, почему ключевое слово match может использоваться как имя переменной или функции, в отличие от других ключевых слов if, while, так далее.?

      >>> match "abc":
...     case "abc":
...         print('Hello!')
...     
Hello!
>>> from re import match
>>> match('A', 'A Something A')
<re.Match object; span=(0, 1), match='A'>
>>> match = '????'
>>> match
'????'
>>> case = 'something'
>>> case
'something'

1 ответ

Решение

Согласно PEP 622 и добавляются как «мягкие ключевые слова» , поэтому они останутся действительными идентификаторами:

Этот PEP полностью обратно совместим: match и case Ключевые слова предлагаются в качестве (и остаются!) мягкими ключевыми словами, поэтому их использование в качестве имен переменных, функций, классов, модулей или атрибутов вообще не затруднено.

Другие вопросы по тегам