我转换这个“非面向对象”的代码:为什么使用类?
from Tkinter import *
root = Tk()
frame = Frame(root)
frame.pack()
bottomframe = Frame(root)
bottomframe.pack(side = BOTTOM)
redbutton = Button(frame, text="Red", fg="red")
redbutton.pack(side = LEFT)
bluebutton = Button(frame, text="Blue", fg="blue")
bluebutton.pack(side = LEFT)
root.mainloop()
此面向对象的代码:
from Tkinter import *
class Window(Frame):
def __init__(self, parent = None):
Frame.__init__(self, parent)
self.pack()
widget=Button(self,text="Red", fg = "red")
widget.pack(side = LEFT)
widget = Button(self, text ="Blue", fg = "blue")
widget.pack(side = RIGHT)
if __name__== '__main__':
Window().mainloop()
无论是片段弹出一个简单的窗口在屏幕上。我的问题是,在这种情况下面向对象编程(即使用类)有什么好处?
如果我想要生成3个其他窗口(使用类),但使用改变的按钮颜色,我需要修改蓝图(即类)还是有任何方法可以在我调用类实例时执行此操作?
阅读和理解你想要达到的目标要容易得多。 –
将来它更具可重用性,如果您在本模块之外使用它,则可以以更易理解的方式引用课程中的对象。 – Ben
真的吗?因为作为一个非py用户,我理解第一个示例中的每一行,而只理解第二个示例中的大部分行。 (什么是'__name __ =='__ main __''?如果'Frame'是一个'Window',为什么我们可以在'Window()'上调用'Mainloop'?)我知道这些事情,但我的观点是,面向对象的目标实际上是销售面向对象的简称。 – Dan