сравнивая с модулями в котлине или неймспейсами в шарпе?
Каждый отдельный файл считается модулем и я постоянно попадаю в ситуации где мне надо либо говнокодить и писать все в одном файле, либо у меня модули импортят друг друга и код не работает
Под пиво сойдет
А нету какого-то способа сделать типа как partial модули?
Большинство ситуаций с циклическими зависимостями в модулях -- это плохая архитектура
Нет просто нужно понять как это работает.
Ну типа модуль то по факту там один по смыслу, но вещи в нем лежат немного разные и их хочется разделить на разные файлы чтобы было удобнее ориентироваться, но я не могу этого сделать
Я понимаю как это работает и мне это не нравится
Ну, так раздели их таким образом, чтобы не было циклических зависимлстей
Ну пересмотреть архитектуру стоит.
Ну условно есть объект действие, у действия есть метод который принимает в себя объект юзера, у объекта юзера есть метод который возвращает действие Мне надо аннотировать оба метода, но для этого придется импортить модули друг в друга
Наоборот хорошо. Явное разделение модулей, нет риска смешать все в кучу
Ну любое, грубо говоря тупо объект у которого есть def execute(user: User | None), а дальше там от него всякое наследуется
А почему юзер может возвращать какое-то действие? Это точно должен быть метод юзера?
Меня в го напрягало. Перенес файл в другую папку, все нафиг сломалось
Да, ну юзер это грубо говоря, там по факту немного другая херня. Есть класс Entity, от него есть наследник у которого в методах возвращается наследник Action, а у этого наследника Action есть поле initiator: тут наследник Entity
По факту спихивать все в один файл, но в условно котлине я могу просто один и тот же модуль писать в нескольких файлах и никаких проблем подобных не иметь, вот неприятно что в питоне так нельзя
А зачем такие циклические ссылки?
Ладно, я вроде придумал как иначе сделать
Обсуждают сегодня