2016-09-13 10 views
0

は、私は、Python 3にこのような何かをしたい:Python 3 - コンストラクタ内から 'self'変数への外部アクセスを許可することは合法ですか?

class MyClass(object): 
    def __init__(self, values): 
     if some_condition: 
      init_from_values(self, values) 

これは合法ですか?つまり、コンストラクタを終了する前に 'self'変数を別のコードブロックに渡すことはできますか?

+0

コンストラクタから 'self'にアクセスできなかった場合、コンストラクタは完全にそのジョブを実行できなくなります。 – user2357112

答えて

1

ええ、それは問題ありません。コンストラクタに他の関数に作業を委任させることができます。他のコードがオブジェクトが完全に構築されていると想定することを行わないようにしてください。例えば、サブクラスメソッドが部分的に構築されたselfで何をするかを知っていない限り、サブクラスがオーバーライドするのを許可するメソッドを呼び出さないでください。

関連する問題