2013-08-22 79 views
0

我想知道是否有人具體使用__init__函數,它與構造函數不一樣。Python __init__類真的不同於構造函數

因爲我到處都在閱讀這個不應該被認爲是構造函數,但我找不到任何利用這個例子的例子,或者真的顯示它爲什麼如此重要。

所以如果有人有一些具體的代碼顯示它,我會很高興看到這一點!

謝謝

+2

你在哪裏閱讀?因爲我認爲它是一個構造函數。它可能與某些其他語言的構造函數的具體概念不同,但這並不會使它不再是構造函數,而不是Python的賦值,因爲它重新綁定了名稱而不是變異值。 – user2357112

回答

1

__init__()不是構造函數本身,因爲__init__()不一定總是試圖構造一個對象的時候叫:

class C(object): 
    def __new__(cls): 
    return 5 

    def __init__(self): 
    print 'I am a crow! CAW! CAW!' 

c = C() 
print c 
0
Class Example: 

    def __init__(self,value1,value2): 
     self.value1 = value1 
     self.value2 = value2 

我不是專家在Python中,並承認init函數可能有其他用途,但對我來說,它看起來像,並像一個構造函數。

也被定義,它的構造函數:

Dictionary.com - Constructor
滾動鏈接計算機相關定義

0

http://docs.python.org/2/reference/datamodel.html 向下滾動到經典類的底部,有它說,一個類可以存在沒有init方法,所以init初始化類的一些東西,但是在調用init的那一刻,對象已經存在。或者說,至少我是這麼理解它,否則它很可能是代替__init__

不是一個真正的回答你的問題,我想更多的邏輯來命名它__constr__左右,但你可以在某些情況下,只是不使用初始化,(如果你認爲「不使用它」作爲它的用途,比我沒有回答部分問題?)

相關問題