В последнее время я добавлял asserts
почти к каждой отдельной функции, которую я делаю, чтобы проверять каждый вход как недобросовестную замену для проверки типа или для предотвращения случайного ввода некорректных данных во время разработки. Например,У вас слишком много утверждений (в Python)?
def register_symbol(self, symbol, func, keypress=None):
assert(isinstance(symbol, basestring))
assert(len(symbol) == 1)
assert(callable(func))
assert(keypress is None or type(keypress) is int)
self.symbols_map[symbol] = (func, keypress)
return
Однако, я волнуюсь, что это идет вразрез с идеей утиной типизации, и что я мог бы идти слишком за борт или сужая себя излишне. У вас может быть слишком много утверждений? Когда самое время остановиться?
Сторона примечания: вы должны использовать утиную печать (не проверяйте тип, проверяйте «способности», как доступные методы). Кроме того, это 'return' совершенно не нужно. –
Реальный вопрос: помогает ли это вам или затрудняет вашу работу. Если множество утверждений поможет вам отслеживать ошибки - сделайте много утверждений в своем коде. Если вам нужна статическая типизация, почему вы выбрали Python для своего проекта? –
@ Никлас Мне нравится возвращение. Это делает меня счастливым внутри: D – Michael0x2a