Как бы вы справились с созданием ответа для метода, который проверяет, является ли объект допустимым? - PullRequest
0 голосов
/ 18 апреля 2020

Допустим, у меня есть файл 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, если объект действителен, но если он не действителен, то он даст мне знать, в каких условиях он не удалось.

1 Ответ

0 голосов
/ 18 апреля 2020

Это вы можете сделать ..

def is_valid(self):
    if self.something is something:
        return False, error1
    if self.something_else is something:
        return False, error2
    ...
    return True, 'Yeahhh!!!'

Теперь вы можете проверить, используя ...

status, msg = self.is_valid()
if status:
   print("Valid")
else:
    print(msg)

Дайте мне знать, если ваша проблема все еще сохраняется ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...