为什么要上课?

mul*_*rse 1 python class

我转换了这个"非面向对象"的代码:

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()
Run Code Online (Sandbox Code Playgroud)

这个面向对象的代码:

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()
Run Code Online (Sandbox Code Playgroud)

这两个片段在屏幕上弹出一个简单的窗口.我的问题是,在这种情况下,面向对象编程(即使用类)的好处是什么?

如果我想生成3个其他窗口(使用类),但是改变了按钮颜色,我是否必须修改蓝图(即类)或者在调用类实例时是否有任何方法可以执行此操作?

ayc*_*dee 5

想想如果你有两个带红色按钮和蓝色按钮的窗户会发生什么.你能明白为什么将它们封装在一个对象中会有什么帮助吗?

  • 更正,或写一个返回另一个窗口对象的函数. (2认同)