Плохо ли включать неподтверждающие методы в модель pydanti c? - PullRequest
0 голосов
/ 04 февраля 2020

Я использую pydanti c 1.3 для проверки моделей для API, который я пишу.

Распространено / хорошая практика включать произвольные методы в класс, который наследуется от pydanti c .BaseModel?

Мне нужны некоторые вспомогательные методы, связанные с объектами, и я пытаюсь решить, нужен ли мне класс "обработчик". Эти модели преобразуются в json и отправляются в услугу, которую я тоже пишу.

Моя модель выглядит следующим образом:

class Foo(pydantic.BaseModel):
    name: str
    bar: int
    baz: int

Это плохая практика, чтобы делать что-то вроде :

class Foo(pydantic.BaseModel):
    name: str
    bar: int
    baz: int

    add_one(self):
        self.bar += 1

Это имеет какой-то смысл для меня, но я не могу найти пример того, как кто-то делает это.

Заранее спасибо.

1 Ответ

0 голосов
/ 04 февраля 2020

Да, все в порядке. Вероятно, нам следует это задокументировать.

Единственная проблема возникает, когда у вас есть имя поля, которое конфликтует с методом, но это не проблема, если вы знаете, как выглядят ваши данные. Кроме того, вы можете чрезмерно ориентировать ваш код, но вы далеки от этого.

...