Форум сайта python.su
0
Есть проект, написанный на PyQT4. Необходимо из него собрать другую программу, отличия которой могут заключаться в изменении интерфейса и логики некоторых функций.
Есть вариант - включить функционал обоих программ в изначальную, и ветвить выполнение по ключу запуска.
Но хотелось бы не трогать код основной программы, а в дополнительной переопределять импорт или инициализацию файла, в котором нужно поменять код.
Например: Надо изменить название кнопки в каком-нибудь диалоге. В основной программе есть метод вызывающий этот диалог (допустим AboutDialog). Хотелось бы иметь возможность создать свой файл с классом, который наследует класс из оригинального AboutDialog и вносит изменения. И заставить программу импортировать именно его, а не оригинальный AboutDialog.
Офлайн
20
Можеть быть получится применить Dependency Injection.
Офлайн
857
Asheduдля этого, вроде, используются декораторы
Необходимо из него собрать другую программу, отличия которой могут заключаться в изменении интерфейса и логики некоторых функций.
Asheduвообще, если сам пишешь, лучше использовать исполнители (информационно-прочные модули в классификации Майерса), там программы тогда легко пересобирать, потому что можно вытащить кусок любого размера, который отвечает за нужное поведение, перестроить его и вставить обратно
Есть вариант - включить функционал обоих программ в изначальную, и ветвить выполнение по ключу запуска.
Офлайн