Оператор assert
существует практически на каждом языке программирования. Это помогает обнаруживать проблемы на ранних этапах вашей программы, когда причина ясна, а не позже, как побочный эффект какой-либо другой операции.
Когда вы делаете ...
assert condition
... вы говорите программе проверить это условие и немедленно вызвать ошибку, если условие ложно.
В Python это примерно эквивалентно:
if not condition:
raise AssertionError()
Попробуйте в оболочке Python:
>>> assert True # nothing happens
>>> assert False
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
Утверждения могут содержать необязательное сообщение, и вы можете отключить их при запуске интерпретатора.
Чтобы напечатать сообщение, если утверждение не выполнено:
assert False, "Oh no! This assertion failed!"
Do not используйте скобки для вызова assert
как функции. Это утверждение. Если вы выполните assert(condition, message)
, вы будете запускать assert
с кортежем (condition, message)
в качестве первого параметра.
Что касается их отключения, при запуске python
в оптимизированном режиме, где __debug__
равно False
, утверждения assert будут игнорироваться. Просто передайте флаг -O
:
python -O script.py
См. здесь для соответствующей документации.