2017-08-07 10 views
-2

私はthisを見て、__init__の機能を持たないPostオブジェクトを作成します:first = Post(title='My First Blog Post, yay!', published=True)。だから私は疑問に思う - 任意のPythonの3.5+オブジェクトは、このようなメンバーを設定__init__機能せずに作成することができます。__init__ aはオブジェクトインスタンスの値を設定できる必要がありますか?

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という別のクラスのすべてを継承するクラスです。そのクラスの残りのコードは、より多くの属性を追加するだけです。

関連する問題