正如人們所熟悉的絕大多數人,這是來自Mark Pilgrim的書DIP,第5章理解蟒蛇自我和init
class FileInfo(UserDict):
"store file metadata"
def __init__(self, filename=None):
UserDict.__init__(self)
self["name"] = filename
嗯,我是新來的蟒蛇,從基本的C背景的,並具有混淆理解它。在我不明白之前說明我的理解。
聲明0:FileInfo
從UserDict
類
聲明1繼承:__init__
是不是構造,類實例化後然而,這是第一方法定義了。
聲明2:self
幾乎是像this
現在麻煩:每St1的INIT 作爲被定義爲所述第一函數。
UserDict.__init__(self)
現在爲什麼被引用的函數相同的功能__init__
內,沒有內在的遞歸我猜。或者它試圖覆蓋類的__init__
方法,該類FileInfo
已經繼承並放置了一個額外的文件名參數(鍵值對)並將其引用到傳遞給__init__
方法的文件名。
我部分地確定,我已經回答了我的問題,但是因爲您可以感覺到存在混淆,如果有人能夠解釋我如何用一些更高級的用例和一般的詳細示例來解釋這種混淆代碼被寫入。
在類中定義'__new__'的情況很少見。我只寫過一次'Singleton'類裝飾器。 – wberry 2012-03-13 16:08:39
的確 - 這就是爲什麼我說它通常被跳過。 – 2012-03-13 16:15:11