Python tkinter中函数与面向对象的结合
我使用tkinter制作了一个应用程序,它基本上接受用户输入,单击相应的按钮,它将运行一个函数来处理它们并返回一个输出 该程序按预期工作,但我不清楚将功能和OOP风格的程序构建结合起来有多合适 我的应用程序由两个python文件组成。第一个文件称为GUI.py,如下所示:Python tkinter中函数与面向对象的结合,python,multithreading,oop,tkinter,functional-programming,Python,Multithreading,Oop,Tkinter,Functional Programming,我使用tkinter制作了一个应用程序,它基本上接受用户输入,单击相应的按钮,它将运行一个函数来处理它们并返回一个输出 该程序按预期工作,但我不清楚将功能和OOP风格的程序构建结合起来有多合适 我的应用程序由两个python文件组成。第一个文件称为GUI.py,如下所示: from secondfile import * class Window: def __init__(self, master): self.master = master ............
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_但_昂贵()的另一个实例,因此我认为函数文件中不需要OOP
然而,似乎大多数程序都使用OOP,我认为它更适合计算机科学。对此有何看法?“我认为它更适合计算机科学”事实并非如此。你真的在谈论函数式编程吗?这并不意味着只有模块级的函数,而是使用纯函数来避免副作用和状态变化。注意,OOP和函数编程实际上并不是相互排斥的。尽管OOP语言通常是必需的,但scala是一种流行的基于类的OOP语言的示例,它从来都不是函数式编程语言。在任何情况下,您在这里所做的都是非常好的。并非所有内容都必须是类定义,这是Python,而不是Java。但从根本上说,这个问题过于基于观点……”“我认为它更适合计算机科学”,事实并非如此。你真的在谈论函数式编程吗?这并不意味着只有模块级的函数,而是使用纯函数来避免副作用和状态变化。注意,OOP和函数编程实际上并不是相互排斥的。尽管OOP语言通常是必需的,但scala是一种流行的基于类的OOP语言的示例,它从来都不是函数式编程语言。在任何情况下,您在这里所做的都是非常好的。并非所有内容都必须是类定义,这是Python,而不是Java。但从根本上说,这个问题过于基于观点。。。