Найти - Пользователи
Полная версия: Перекрёстный импорт
Начало » Python для новичков » Перекрёстный импорт
1 2
PanovSergey
А да забыл, поправить тесты чтобы работали корректно с новым кодом.
sergeek
PanovSergey
Вынести значит собрать общий код вместе
Еще раз, общий код находится в методах. Определять методы одного класса в разных модулях - как минимум странно.
PanovSergey
выпилить оттуда где его не должно быть
Если код не полный, то не факт, что его не должно быть там.


PanovSergey


Попробую объяснить

В этом коде явно напрашивается дополнительный класс отвечающий за функциональность коллекции, т.е методы: добавить в коллекцию коллекционера, удалить автомобиль, проверить есть ли автомобиль у кого то бы то ни было, нет ли дублирующих записей. И т.д. Очевидно что нужен еще один класс. отвечающий за все это. Тогда классы коллекционер и авто смогут сосредоточиться на специфичных для них свойствах, например, ну скажем членская карточка коллекционера или размер шин для авто. Что это дает, во первых классы будут меньше позволит их лучше понимать. Дальше Большую гибкость например т.к коллекционер не будет имеет прямой связи с Авто. Соответственно его можно использовать совершенно отдельно. Без Авто и связей с ними. Как то так.

Если код не полный, то не факт, что его не должно быть там.
Где написано что код не полный? Написано “Прошу простить, если “это” больно читать.” о чем топикстартер честно предупредил. Я же писал кривой и не рабочий. А по сути видно ошибка проектирования отсюда и циклический импорт.
sergeek
PanovSergey
Где написано что код не полный?
Я этого не утверждал. Если он полный, то ТС, наверное, просто поместил бы эти ~50 строк в один модуль.
PanovSergey
А по сути видно ошибка проектирования отсюда и циклический импорт.
Собственно, то, что я пытался донести - взаимные импорты не являются ошибкой проектирования в общем случае.
Tropick
версия 2.7.1. Я так понял, в питоне нет места соотношению один класс - один файл? А код, между прочим, хоть и кривой, но рабочий. Сделал одним файлом - стало тру!

UDP:На самом деле, код я действительно не дописал! И надо было это указать!
Singularity
Tropick
зачем себя утруждать ведь так приятно побыть немного в роли Шерлока
PanovSergey
Собственно, то, что я пытался донести - взаимные импорты не являются ошибкой проектирования в общем случае.
Так скажем есть паттерны, а есть антипаттерны которые работают в разных случаях У циклических импортов есть существенный минус, когда вам понадобится этот модуль + еще какой нибудь, не известно когда вы огребете еще один цикл, и тогда единственным выходом будет делать локальный импорт ибо разруливать связи будет поздно А когда на каждый чих в коде надо делать импорт начинается жесть

Сделал одним файлом - стало тру!
Как вариант. Но лучше было сделать модулями. Меньше связность.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB