asignar la variable de clase como valor predeterminado al argumento del método de clase

Me gustaría construir un método dentro de una clase con argumentos de valores predeterminados tomados de esta clase. En general hago filtrado sobre algunos datos. Dentro de mi clase tengo un método donde normalmente paso un vector de datos. A veces no tengo el vector y tomo datos simulados. Cada vez que no paso un vector en particular, me gustaría tomar datos simulados por defecto. Pensé que debería ser una construcción fácil donde digo dentro de mi definición de métodoa=self.vector. Pero por alguna razón tengo un error.NameError: name 'self' is not defined. La construcción simplificada es:

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__

Una salida que esperaba debería ser:

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

Intenté la asignación por defecto comodef doSomething(self, a=z): obviamente no funciona nunca Hasta donde yo entiendoself.z Es visible en este ámbito y no debería ser un problema tenerlo como valor predeterminado. No sé por qué tengo este error y cómo hacerlo. Esta es probablemente una pregunta fácil, pero trato de resolverlo o encontrar la solución sin falta por algún tiempo ya. encontrésimilar Preguntas solo para otros idiomas.

Respuestas a la pregunta(4)

Su respuesta a la pregunta