Мне кажется, что assert
здесь проверяет предположение, которое делает код. Он потерпит неудачу, если класс будет использован неправильно (т.е. ошибка программирования).
Если это действительно так, то использование assert
здесь ИМХО оправдано. Правда, Python щедро выдает исключения, когда что-то используется неправильно, и EAFP - хорошая стратегия. Тем не менее, иногда ошибки, выдаваемые интерпретатором, не являются достаточно описательными, чтобы упростить поиск проблемы, и в таких случаях assert
уместно. Он также должен быть связан с соответствующей документацией, в которой указано, как класс ожидает использования (т. Е. Переданный метод должен иметь определенные атрибуты).
Если я неправильно понял ваш образец, и вы используете assert
здесь для проверки того, с чем пользователь может ошибиться, тогда это не очень хорошая идея.