Опыт разработчиков: assert как средство для валидации

Хочется сегодня осветить такой элемент синтаксиса как assert. assert - это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы.

Какая же польза от этой проверки? Представим что мы что-то пишем код, который получает данные из Базы Данных, производит обработку данных и загружает результат обратно. По замыслу этого кода мы должны положить в базу столько же данных сколько и получили. Но так как мы написали код с ошибками (случайно), то количество данных не совпадает. И что же случится?

В этом случае очень хорошо себя показывает assert. Эта конструкция проверят данные и в случае не соответствия ожиданиям - бросает AssertException.

Примеры кода:

assert 'command' in data, 'Not found command'
assert data.get('command') == command, 'Not valid command'


Комментарии