2013-11-09 29 views
1

考慮我創建一個類名稱 「應用程序」,其接受 「幀」 插件理解的Init在Python

class Application(Frame): 

在構造/初始化我做

def __init__(self, master=None): 

當創建實例

root = Tk() 
app = Application(master=root) 

我不知道創建實例時,我正在分配Tk()類的實例給Master。那麼爲什麼在初始化時我們將它設爲「無」。有人可以看看這個和解釋。

由於提前

回答

5

當你寫def __init__(self, master=None):要設置無爲master默認值。當您撥打Application(master=root)時,您傳遞的值將覆蓋默認值。

A simple example: 

def foo(a=1): 
    print "a is", a 

>>> foo() 
a is 1 
>>> foo(2) 
a is 2 
>>> foo(a=2) 
a is 2 
>>> 
+0

嗨!要解釋。是否有任何規則/文件更詳細地解釋了這一點。我明白了這一點,但從技術上講,我仍然無法理解。當我打電話給foo(沒有參數)時,它的罰款a得到默認值。但是當我傳遞一些參數仍然應該得到默認值。爲什麼默認值被忽略? –

+0

@PragRao:當你傳遞一個值時,它會覆蓋默認值。這就是「默認」的意思:它意味着它的價值,如果你沒有指定任何其他值使用。您可以從[Python教程](http://docs.python.org/2/tutorial/)開始獲取更多信息。 – BrenBarn