Действительно, команда очень удобна для быстрой проверки правдивости какого-либо факта.
assert isinstance(value, int), "Value must be type int"
Но почему советуют делать это только в тестах? Дело в том, что эта команда сделана именно для тестов и есть специальный режим когда она глобально отключается и не работает.Есть такая builtin константа
__debug__, которая по умолчанию имеет значение True (и это не изменить в коде). Именно она указывает, будут ли работать ваши assert'ы.Стоит запустить интерпретатор в режиме оптимизации (флаг -O), константа
__debug__ будет равна False, и все ваши проверки будут проигнорированы.python -O script.py
Поэтому всегда используйте raise.if not isinstance(value, int):
raise TypeError("Value must be type int")
#tricks