Assert не предназначен для обработки ошибок в продакшн-среде, так как его поведение зависит от окружения, в котором выполняется код. habr.com
Некоторые проблемы использования assert в продакшн:
- Отключение assert. sky.pro Для оптимизации производительности в продакшене assert можно отключить глобально, передав флаг -O при запуске скрипта. sky.pro Это означает, что все проверки assert будут проигнорированы. sky.pro
- Опасность использования assert для проверки данных. dzen.ru learn4kid-python.firebaseapp.com Если assert используется для проверки того, содержит ли аргумент функции «неправильное» значение, это может привести к дополнительным ошибкам или дырам с точки зрения безопасности. dzen.ru learn4kid-python.firebaseapp.com
- Сложность отлова багов. habr.com Если программа, использующая assert, запускается в оптимизированном режиме, то баг бывает сложно отловить. habr.com
Для обработки ошибок в реальном коде в продакшн-среде лучше использовать другие механизмы, например, raise, который предоставляет больше гибкости и позволяет использовать разные типы исключений и добавлять более подробные сообщения об ошибках. sky.pro