Python 3.11+typingфункция
typing.assert_never
приведение и отладка
Маркер недостижимой ветки (напр. в исчерпывающем match): средство проверки типов проверит недостижимость, а во время выполнения всегда бросает AssertionError (Python 3.11+).
Синтаксис
typing.assert_never(value)
Приём для исчерпывающих match или цепочек if-elif: в финальной, якобы недостижимой ветке средство проверки типов убеждается, что туда не попадает ни один вариант, а стоит добавить новый — и оно ткнёт носом именно в этот вызов. Во время выполнения полезной работы не несёт: раз управление сюда дошло, это уже баг, поэтому всегда бросает AssertionError.
Примеры
from typing import assert_never
try:
assert_never(1)
except AssertionError:
print('unreachable') # → unreachable
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности