首页 > 解决方案 > 在 tkinter 中结合功能和 OOP

问题描述

我使用 tkinter 制作了一个应用程序,它基本上接受用户输入,并在单击适当的按钮后,它将运行一个函数来处理它们并返回一个输出。

该程序按预期工作,但是我对将程序构建的功能和 OOP 风格结合起来有多合适感到困惑。

我的应用程序包含两个 python 文件。第一个文件,我们称之为 GUI.py,如下所示:

from secondfile import *
class Window:
    def __init__(self, master):
    self.master = master 
    .................
    
    def proceed():
        self.newWindow = tk.Toplevel(self.master)
        self.app = Window2(self.newWindow, self)

class Window2:
    ........ 
    thisThread = threading.Thread(
                      target =simple_func_but_expensive, 
                      args   = (....))

    def run_the_prog2():
        thr.start()


def main():
    root = tk.Tk()
    root.geometry(....)
    root.title(.....)
    app = Window(root)
    root.mainloop()

if __name__ == '__main__':
    main()   

第二个文件(secondfile.py)包括:

def supporting_function_1(....):
    .........
def supporting_function_2(....):
    .........
def supporting_function_...(....):
    .........
def supporting_function_20(....):
    .........
def simple_func_but_expensive(.......):
    .........

我正在考虑用类重构第二个文件,但是 secondfile.py 中的每个函数并没有真正共享实例变量。此外,由于 root.mainloop(),该程序能够运行 simple_func_but_expensive() 的另一个实例,所以我认为函数文件中不需要 OOP。

但是,似乎大多数程序都使用 OOP,我认为它更适合计算机科学。对此有何看法?

标签: pythonmultithreadingooptkinterfunctional-programming

解决方案


推荐阅读