Python Glossary English

все Python 3astпонятие

ast.Assert

инструкции

Узел инструкции assert: проверяемое выражение в test и необязательное сообщение в msg.

Синтаксис

ast.Assert(test, msg=None)

Скобки вокруг обоих частей — assert (x, 'текст') — превращают test в Tuple, который всегда истинен; в дереве это видно как test типа Tuple, и именно так ловят эту ошибку. Без сообщения msg равно None. Под python -O компилятор выбрасывает весь узел, поэтому проверять ввод пользователя через assert нельзя.

Примеры

import ast
node = ast.parse('assert x > 0, "negative"').body[0]
print(type(node.test).__name__, node.msg.value)  # → Compare negative
bad = ast.parse('assert (x, "negative")').body[0]
print(type(bad.test).__name__, bad.msg)  # → Tuple None

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности