170 похожих чатов

Есть хотелка, чтобы в моих классах можно было задавать аттрибуты

также, как в датаклассах. Т.е. объявил, а инициализацию в конструкторе прописывать не нада, она автоматом уже будет.
С метаклассами пока не справился, есть чувство, что ими не получится.
Смотрю в сторону переопределения __new__ в классе. Есть правда нюансы с наследованием.

Можно как-то ещё сие сделать? Может готовые решения уже существуют, и я вел изобретаю)

18 ответов

20 просмотров

ну собсвтенно ты можешь в ините просто опрашивать какие филды есть в классе

А зачем такая фича? С этим IDE нормально работать не будет. Может лучше модицировать датаклассы?

K-G Автор вопроса
Pavel Павлик
А зачем такая фича? С этим IDE нормально работать ...

Нет, у меня задача классов не датаклассовая совсем. Наследоваться будет идеологически неверно.

K-G Автор вопроса
Tishka17
ну собсвтенно ты можешь в ините просто опрашивать ...

А я правильно понимаю, что через метаклассы либо вот именно генерить код, либо никак, если речь идёт о разборе того, что будут кормить конструктору?

K-G Автор вопроса
Pavel Павлик
А причем тут наследование?

Я бы не хотел брать исходники датаклассов и на их базе что-то пилить))

K G
А я правильно понимаю, что через метаклассы либо в...

да можно и метаклассы, но тогда будут проблемы с абстрактными

K G
Я бы не хотел брать исходники датаклассов и на их ...

Если так делать, то IDE и тайпчекеры все равно не будут работать. Для датаклассов они свой костыль реализуют, повторяя логику того, то в коде питона создается

K-G Автор вопроса
Tishka17
а какая в целом задача?

У меня будет что-то вроде графа. Классы, про которые я пишу, будут нодами. При их создании в конструктор будут пробрасываться другие ноды - для переходов. Вот я думал на уровне класса завести аттрибуты с именами out_*, чтобы автоматом разбирались из инита.

K G
У меня будет что-то вроде графа. Классы, про котор...

Ну, сделай датакласс. Какие фичи тебе еще нужны?

ух, опять магические имена атрибутов

K-G Автор вопроса
Tishka17
ух, опять магические имена атрибутов

а какие есть альтернативы упрощения? без этого придётся в каждом контрукторе бойлерплейт прописывать.

K-G Автор вопроса
Pavel Павлик
Ну, сделай датакласс. Какие фичи тебе еще нужны?

В каждом классе будет логика обработки входной инфы и переброс оной на выбранный переход в другой нод.

K G
В каждом классе будет логика обработки входной инф...

не совсем понятно как поможет наличие префикса

Почему не должен?

K-G Автор вопроса
Pavel Павлик
Почему не должен?

Потому, что он контейнер. DTO и все дела. Я не спорю, что можно нашпиговать чем угодно. Просто идеологически опять же хочется валить всё в кучу. Clean Architecture, все дела) Только не холиварить!)) Как вариант, в датакласс можно пробрасывать стратегию обработки. Надо думать...

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта