также, как в датаклассах. Т.е. объявил, а инициализацию в конструкторе прописывать не нада, она автоматом уже будет.
С метаклассами пока не справился, есть чувство, что ими не получится.
Смотрю в сторону переопределения __new__ в классе. Есть правда нюансы с наследованием.
Можно как-то ещё сие сделать? Может готовые решения уже существуют, и я вел изобретаю)
ну собсвтенно ты можешь в ините просто опрашивать какие филды есть в классе
А зачем такая фича? С этим IDE нормально работать не будет. Может лучше модицировать датаклассы?
Нет, у меня задача классов не датаклассовая совсем. Наследоваться будет идеологически неверно.
А причем тут наследование?
а какая в целом задача?
А я правильно понимаю, что через метаклассы либо вот именно генерить код, либо никак, если речь идёт о разборе того, что будут кормить конструктору?
Я бы не хотел брать исходники датаклассов и на их базе что-то пилить))
да можно и метаклассы, но тогда будут проблемы с абстрактными
Если так делать, то IDE и тайпчекеры все равно не будут работать. Для датаклассов они свой костыль реализуют, повторяя логику того, то в коде питона создается
Скажи какая у тебя задача
У меня будет что-то вроде графа. Классы, про которые я пишу, будут нодами. При их создании в конструктор будут пробрасываться другие ноды - для переходов. Вот я думал на уровне класса завести аттрибуты с именами out_*, чтобы автоматом разбирались из инита.
Ну, сделай датакласс. Какие фичи тебе еще нужны?
ух, опять магические имена атрибутов
а какие есть альтернативы упрощения? без этого придётся в каждом контрукторе бойлерплейт прописывать.
В каждом классе будет логика обработки входной инфы и переброс оной на выбранный переход в другой нод.
не совсем понятно как поможет наличие префикса
Почему не должен?
Потому, что он контейнер. DTO и все дела. Я не спорю, что можно нашпиговать чем угодно. Просто идеологически опять же хочется валить всё в кучу. Clean Architecture, все дела) Только не холиварить!)) Как вариант, в датакласс можно пробрасывать стратегию обработки. Надо думать...
Обсуждают сегодня