TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки
Python Заметки avatar

TGINSIGHT POST

Post #91

@pythonotes

Python Заметки

Views537Post view count
PostedMay 2705/27/2020, 08:59 AM
Post content

Post content

Почему не стоит в коде использовать assert для проверки данных? Действительно, команда очень удобна для быстрой проверки правдивости какого-либо факта. 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