我正在学习使用tkinter编写事件驱动程序,并使用Fredrik Lundh的出色教程。在那篇文章中,他提到最好为框架定义一个类(App)并将该程序作为该类的实例运行,而不是像这样启动它:root = Tk()w = Label(root, text = 'hello, world!')w.pack()root.mainloop()我有3个问题:以这种简单的方式进行编程是不好的编程习惯吗?如果我确实定义了一个类,并且将回调函数绑定到小部件,这些函数是否都必须在类本身内?即我可以go在班级内部使用一个按钮,单击该按钮时,它会运行班级外部定义的详细例程吗?然后将结果生成带到班级之外并在班级中显示出来是不明智的做法?本质上,我可以通过跳入和跳出类而使程序工作,但是不确定这样做是否不好(全局变量)
3 回答

Cats萌萌
TA贡献1805条经验 获得超9个赞
通常是的...对于较小的程序,可能不会有太大问题,但是随着复杂度的增加,将内容合并到类中是一件很不错的事情
是
不是真的...(全局变量通常是不好的做法...),但是您所描述的是消息封装和传递

慕虎7371278
TA贡献1802条经验 获得超4个赞
1)对于这个例子,我想不一定是错误的。该程序运行。真正的担心是,当您开始制作更复杂的程序时,可能需要更结构化的格式。课堂可以提供帮助。
2)函数不必全部都在类本身内。方法可以调用外部函数。使用方法而不是功能的主要原因是该方法可以随时访问对象的所有属性。您要避免函数到达对象内部以操纵属性。
3)最好将变量传递给类而不是定义全局变量,这主要是因为很难维护范围。
添加回答
举报
0/150
提交
取消