przypisanie zmiennej klasy jako domyślnej wartości do argumentu metody klasy

Chciałbym zbudować metodę wewnątrz klasy z domyślnymi argumentami wartości pobranymi z tej klasy. Na ogół filtruję niektóre dane. W mojej klasie mam metodę, w której normalnie przekazuję wektor danych. Czasami nie mam wektora i wykonuję symulowane dane. Za każdym razem, gdy nie przekazuję określonego wektora, domyślnie chcę pobrać symulowane dane. Myślałem, że powinna to być łatwa konstrukcja, w której w mojej definicji metody mówięa=self.vector. Ale z jakiegoś powodu mam błądNameError: name 'self' is not defined. Uproszczona konstrukcja to:

class baseClass(object):  # This class takes an initial data or simulation
    def __init__(self):
        self.x = 1
        self.y = 2

class extendedClass(baseClass): # This class does some filtering
    def __init__(self):
        baseClass.__init__(self)
        self.z = 5
    def doSomething(self, a=self.z):
        self.z = 3
        self.b = a

if __name__ == '__main__':
    a = extendedClass()
    print a.__dict__
    a.doSomething()
    print a.__dict__

Oczekiwałem wyjścia:

{'y': 2, 'x': 1, 'z': 5}
{'y': 2, 'x': 1, 'z': 3, 'b': 5}

Próbowałem domyślnego przypisania jakodef doSomething(self, a=z): oczywiście to nigdy nie działa. O ile rozumiemself.z jest widoczny w tym zakresie i nie powinien być problemem, aby mieć go jako wartość domyślną. Nie wiem, dlaczego mam ten błąd i jak to zrobić. Jest to prawdopodobnie łatwe pytanie, ale staram się to rozgryźć lub znaleźć rozwiązanie, którego już nie brakuje. znalazłempodobny pytania tylko dla innych języków.

questionAnswers(4)

yourAnswerToTheQuestion