我轉換這個「非面向對象」的代碼:爲什麼使用類?
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