Допустим, у меня есть файл model.py, в котором хранятся финансовые транзакции. В модели есть метод is_valid (), который в основном проверяет, что объект придерживается множества бизнес-логик.
Этот метод теперь имеет довольно продолжительный срок, он делает около 20 проверок объекта и выглядит примерно так :
def is_valid(self):
if self.something is something:
return false
if self.something_else is something:
return false
...
return true
До сих пор это работало замечательно, но теперь я дошел до стадии, когда мне больше не нужно просто знать, является ли объект действительным, но если он не действителен, мне нужно знать, какой проверить это не удалось. Так что-то вроде:
def is_valid(self):
if self.something is something:
return error1
if self.something_else is something:
return error2
...
return true
Но, если объект не прошел многократные проверки, я бы хотел знать все проверки, которые он провалил.
Каков был бы самый чистый способ обрабатывать это?
В моем коде также есть много строк, которые check is_valid () возвращает true, поэтому в идеале он все равно будет возвращать true, если объект действителен, но если он не действителен, то он даст мне знать, в каких условиях он не удалось.