2017-03-16 29 views
-1

我在Python中調用類時看到了一個很奇怪的現象: 我想在屏幕上看到「Base created」。但是我看到兩條線,完全一樣。這對我來說很奇怪。在Python腳本中調用__init__時出現重複的行

class Base(object): 
    def __init__(self): 
     print "Base created now" 

test1=Base() 
test1.__init__() 

屏幕上的結果是:

Base created now 
Base created now 

所以我做了另一個實驗:我改變了 「初始化」 到 「print_test」:

class Base(object): 
    def print_test(self): 
     print "Base created now" 

test1=Base() 
test1.print_test() 

屏幕上的結果:

Base created now 

你知道爲什麼第一個腳本有兩個相同的行,第二個腳本只有一行?謝謝!

回答

3

__init__()是你的構造方法,它總是被創建新實例

class Base(object): 
    def __init__(self): 
     print "Base created now" 

test1=Base() # this creates a new instance and calls __init__() 
+0

感謝時調用!我可以把它解釋爲:__init__是一個特殊的功能。每當我創建一個新實例並調用這個__init__函數時,它會自動「複製」該函數中的所有內容。我對麼? –

+0

在幾乎所有情況下,您都不會自己調用'__init __()'。 –

+0

謝謝。爲了避免屏幕上不必要的轉儲信息,我改變了「__init__」的內容:刪除了「print」操作,並添加了一些虛擬(冗餘)內容。然後我寫了另一個新的函數,與「__init__」並行,這是一個打印函數。現在,如果我打電話給新的打印功能,它只在屏幕上顯示一行。大! :) –