Задать вопрос
@itatelier

Как сконструировать класс в Python, содержащий подкласс Meta с «опциями»?

Как сконструировать класс, что бы при наследовании можно было указать подкласс Meta и в методах основного использовать атрибуты этого подкласса? (подобие Django models.Model)

Пример "использования" такого класса:

class MyNewClass(BaseClass):

    attr1 = Field()
    attr2 = Field()
    
    class Meta:
        is_valid = True
        fields = [
            'attr1',
            'attr2'
        ]
        initial = {
            'attr1': 42
        }
  • Вопрос задан
  • 63 просмотра
Подписаться 1 Простой Комментировать
Ответ пользователя Александр Нестеров К ответам на вопрос (1)
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Надо понимать, что у Django "под капотом" много сложной логики и класс Meta - один из инструментов, предназначенный для того, чтобы упростить программисту, использующему django, работу.
Собственно, если вы не делаете еще один "инструмент" или не пишите большой проект в команде, то задумайтесь - а нужно ли тратить много времени на переусложнение конструкции ради того чтобы в паре мест немного сократить время разработки?
Касательно вопроса - ко вложенным классам можно обращаться через self. Далее, как говориться:
Без ТЗ - результат ХЗ

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