2015-02-09 3 views
0

У меня есть короткая программа, использующая Tkinter с двумя основными кнопками: Загрузка файлов и Запуск процесса.Передача переменных вокруг графического интерфейса (с использованием глобальных переменных)?

Загрузить файлы создает четыре списка из нескольких тысяч объектов каждый. Run Process запускает мой алгоритм в этих списках и генерирует отчет для пользователя.

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

Моя главная функция:

def main(): 
    root.mainloop() 

Загрузка файлов начинается:

def load_files(): 
    global key_map 
    global ser_events 
    global scada_events 
    global beta_dict 
    and then load the files... 

Run Процесс начинается как:

def run_process(): 
    global ser_events 
    global scada_events 
    global beta_dict 
    and then do the process stuff... 
+1

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

ответ

0

Я рекомендую смотреть на this site. Как этот пример настроен, приложение tkinter является классом. Ваши функции load_files() и run_process() будут функциями класса, а вместо использования глобальной переменной (держаться подальше от globals в python!) Переменные будут свойствами класса.

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

Смежные вопросы