2017-08-07 79 views
-2

我看着this,他們創建了一個Post對象,該對象沒有__init__函數:first = Post(title='My First Blog Post, yay!', published=True)。所以我想 - 可以在任何的Python 3.5+對象沒有__init__功能設置成員這樣創建:__init__是否必須能夠設置對象實例值?

class Apple: 
    id = 66 
    w = 99 

an_apple = Apple(id=44, w=55) 
+3

它繼承了''從類DocType' __init__':https://github.com/elastic/elasticsearch-dsl-py/blob/b71cb29a5b72c653761464b23c81fcab89b588da/elasticsearch_dsl/document.py#L104 –

+0

你*嘗試*呢?發生了什麼?那結果告訴你什麼? – jonrsharpe

回答

1

如果你跑你這裏寫的代碼,你會看到答案是沒有,因爲你會得到這個錯誤TypeError: object() takes no parameters。仔細閱讀@AshwiniChaudhary,你讀到的關於的函數確實有__init__,它只是從其他地方繼承它。

在代碼中看到這部分代碼? class Post(DocType):

這意味着Post是繼承了另一個類名爲DocType的所有類的類。該類的其餘代碼只是添加了更多的屬性。

相關問題