2016-07-08 8 views
0

クラス定義のデフォルト値をクラスのインスタンス変数の1つに設定するにはどうすればよいですか?Pythonクラスの関数定義でのインスタンス変数の使用

class SomeClass: 
    def __init__(self, data): 
     self.data = data 

    def do_something(self, data_file=self.data): # Here 

     # modify the data and return to itself using recursion. 
     if something: 
      return self.do_something(data_file) 
     else: 
      return data_file 
+0

機能のデフォルトは*一度*、関数が作成されたときに決定されています。メソッドが呼び出されるたびに作成されるわけではありません。 –

+0

* "関数内の値にアクセスできないように再帰を使用したい" * - なぜ2つのものが一緒になっているのかは分かりません。 – jonrsharpe

+0

別の重複:[オブジェクトのインスタンスの関数パラメータのデフォルトを変更する方法](https://stackoverflow.com/q/32013733) –

答えて

1

別の値を使用し、それをチェック:

def do_something(self, data_file=None): 
    if data_file is None: 
     data_file = self.data 

    ...etc... 
関連する問題