Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 26, 2012 14:23:10

Ashedu
Зарегистрирован: 2012-11-23
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание отдельной программы на основе имеющейся, нюансы импорта и замены кода

Есть проект, написанный на PyQT4. Необходимо из него собрать другую программу, отличия которой могут заключаться в изменении интерфейса и логики некоторых функций.
Есть вариант - включить функционал обоих программ в изначальную, и ветвить выполнение по ключу запуска.
Но хотелось бы не трогать код основной программы, а в дополнительной переопределять импорт или инициализацию файла, в котором нужно поменять код.

Например: Надо изменить название кнопки в каком-нибудь диалоге. В основной программе есть метод вызывающий этот диалог (допустим AboutDialog). Хотелось бы иметь возможность создать свой файл с классом, который наследует класс из оригинального AboutDialog и вносит изменения. И заставить программу импортировать именно его, а не оригинальный AboutDialog.

Офлайн

#2 Дек. 26, 2012 15:29:47

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Создание отдельной программы на основе имеющейся, нюансы импорта и замены кода

Можеть быть получится применить Dependency Injection.



Офлайн

#3 Дек. 27, 2012 03:18:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10014
Репутация: +  857  -
Профиль   Отправить e-mail  

Создание отдельной программы на основе имеющейся, нюансы импорта и замены кода

Ashedu
Необходимо из него собрать другую программу, отличия которой могут заключаться в изменении интерфейса и логики некоторых функций.
для этого, вроде, используются декораторы

Ashedu
Есть вариант - включить функционал обоих программ в изначальную, и ветвить выполнение по ключу запуска.
вообще, если сам пишешь, лучше использовать исполнители (информационно-прочные модули в классификации Майерса), там программы тогда легко пересобирать, потому что можно вытащить кусок любого размера, который отвечает за нужное поведение, перестроить его и вставить обратно



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version