2016-12-04 87 views
1

我正在經歷一個tkinter教程,並且我很難理解self.master.title()調用。在施工期間,主人似乎被分配了默認值Nonemaster然後被分配給self.master,從而使self.master成爲NoneType對象。 self.master.title屬性來自哪裏?NoneType對象的方法屬性

import tkinter as tk 

class Window(tk.Frame):       

    def __init__(self, master = None):   
     tk.Frame.__init__(self, master)   
     self.master = master 
     self.init_window() 

    def init_window(self):  
     self.master.title("GUI") 
     self.pack() 
+0

你說得對,如果'Window'實例化時沒有'master'的值,那麼'self.master.title'將失敗並出現AttributeError。 – 101

回答

1

雖然master確實有None默認值,如果沒有指定這個參數默認只會物質(即thing = Window())。

如果指定了自變量(即thing = Window(SomeTKinterObject)),那麼self.master將等於自變量(在這種情況下爲SomeTKinterObject)。

+0

謝謝 - 沒錯。按位置傳遞的參數將覆蓋默認函數參數,而不需要按名稱匹配。 –

+0

如果這回答你的問題,請給我勾選標記,這樣我可以得到一些觀點。 – timotree

+0

(至@antoneous_rex) – timotree

相關問題