在GUI周围传递变量(使用全局变量)?

时间:2015-02-09 21:25:19

标签: python user-interface global

我有一个使用Tkinter的短程序,有两个主要按钮:加载文件和运行过程。

加载文件创建四个列表,每个列表包含几千个对象。 运行流程在这些列表上运行我的算法,并为用户生成报告。

我的问题是:一般来说,这些列表应该在哪里?现在我将它们作为全局变量,但是我们总是被告知,这是不好的做法。我感觉这样是一个使用全局变量的合适位置,但是有更好的方法吗?

我的主要功能是:

def main():
    root.mainloop()

加载文件以:

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

运行流程从:

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

1 个答案:

答案 0 :(得分:0)

我建议查看this site。设置此示例的方式,tkinter应用程序是一个类。你的load_files()run_process()函数将是类的函数,而不是使用全局变量(远离python中的全局变量!),变量将是类属性。

不幸的是,这需要重写您的代码,但它会促进良好的编程技术,并且您的代码将更加整洁和可读:)