は、以下のクラスを検討:__init__が完了する前にメンバ関数でインスタンス変数を使うべきですか?例えば
class A:
def __init__(self):
self.attr1 = value
self.attr2 = self.foo()
def foo(self):
return self.attr1 ** 2
これが正しい方法ですが、私は、パラメータとしてfoo
からattr1
を渡す必要があるか、私はクラスの外foo
を定義する必要がありますか?
このメソッドを呼び出す方法は、完全に安全ではありません。たとえば、オブジェクトを作成するたびにオブジェクトの 'repr'を記録しようとすると、' __repr__'は安全にサブクラスによってオーバーライドできません。 (この問題を回避する方法はありますが、完全に安全ではありません) – user2357112