2016-07-08 9 views
0

Wie kann ich den Standardwert in der Klassendefinition auf eine Instanzvariable der Klasse setzen?Instanzvariable in der Python-Klasse verwenden Funktionsdefinition

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

Funktion Standardwerte bestimmt werden * einmal *, wenn die Funktion erstellt wird. Sie werden nicht bei jedem Aufruf der Methode erstellt. –

+0

* "Ich möchte Rekursion verwenden, damit ich nicht auf den Wert innerhalb der Funktion zugreifen kann" * - es ist nicht klar, warum diese beiden Dinge zusammenpassen. – jonrsharpe

+0

Ein weiteres Duplikat: [Wie ändert man den Standardwert des Funktionsparameters für eine Instanz eines Objekts?] (Https://stackoverflow.com/q/32013733) –

Antwort

1

einen anderen Wert verwenden, und prüfen, ob es:

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

    ...etc... 
Verwandte Themen