2011-12-27 5 views
1

Pythonでは、クラスが定義された後に属性を追加できないのはなぜですか?たとえば

class Car: 
    pass 
jeep = Car() 
jeep.color = 'blue' 

これは完全に合法であると細かい動作します。私はPythonはかなり動的だが、これはoopのいくつかの原則に違反しないことを理解する?

+5

あなたはどのoopの原則を指していますか? – scravy

+0

これはデータ隠蔽の原則に違反していると主張することができますが、Pythonはそれをまったく強制しません。 –

+0

新しい属性はクラスに属しません – Jhonathan

答えて

2

http://docs.python.org/tutorial/classes.html#odds-and-ends

は、動的にそれらが実行時にのみ知ることができるフィールドと値を設定します。

はそうしないと決めることができますが、Pythonはインスタンスプロパティを動的に作成できないわけではありません。はそうする必要はあまりありません。 Pythonは非常に強力な言語ですが、柔軟性を持って狂ったことをするこのような力を乱用しないよう注意しなければなりません。

関連する問題