Как интерактивно редактировать ваш графический интерфейс используя reload() — wxPython #23

Я наткнулся на интересный вопрос на StackOverflow несколько лет назад. Его автор спрашивал, как он может динамично писать программу, используя wxPython. Другими словами, он хотел получить возможность использовать встроенный в wxPython функционал reload(). Если мы хотим попробовать сделать это, нам нужно написать небольшой фронт-енд интерфейс, в который мы и импортируем код, который мы хотим редактировать интерактивно.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Создание перезагружающегося приложения

Как интерактивно редактировать ваш графический интерфейс используя reload()  - wxPython #23

Создание перезагружающегося приложения – простой и прямолинейный процесс. Всё, что нам нужно это приложение, которое запрограммировано на динамическую перезагрузку. Python сделает всё остальное. Давайте взглянем на код перезагружающегося приложения, а затем взглянем на простое приложение, которое мы будем редактировать и перезагружать.

Здесь мы импортируем модуль, который мы будем редактировать в то время, когда скрипт уже запущен. В данном случае, модуль называется testApp (а сам файл назван testApp.py). Затем мы добавляем пару кнопок: одну для отображения фрейма testApp, другую для перезагрузки кода testApp и повторного его отображения, но уже со внесёнными изменениями. Соглашусь, нам скорее всего стоило бы добавить хэндлинг исключений на случай, если в коде будет сделана опечатка, но я решил не делать этого, чтобы вы поупражнялись самостоятельно.

Теперь же нам нужно создать файл testApp.py.

Создание динамического приложения

Теперь нам нужно создать супер-простое приложение, которое мы сможем обновить и перезагружать, используя наше приложение для перезагрузки. Вот небольшой фрагмент кода, который невероятно прост:

Теперь, всё что вам нужно – это отредактировать второй файл и перезагрузить его с помощью первого файла, чтобы увидеть изменения. Я советую добавить кнопку в класс TestPanel, которая бы сохраняла предыдущую версию, а затем уже нажимать на кнопку «Перезагрузка» в другом скрипте, чтобы увидеть изменения.

Итоги

Создание простого приложения для перезагрузки может помочь вам избежать повторений в вашем кода, а также, но это весьма спорно, сэкономит вам массу времени, которое вы бы потратили на постоянное сохранение кода и повторный запуск своего приложения.

Как бы то ни было, это довольно забавный способ изучения как wxPython, так и принципа работы Python в целом. Кроме этого, поиск новых забавных способов реализации своих идей – неотъемлемая часть разработки программного обеспечения. Я думаю, что вы должны получить удовольствие в процессе кодинга.