¿Cómo pasar un valor de argumento predeterminado de un miembro de instancia a un método?

Quiero pasar un argumento predeterminado a un método de instancia utilizando el valor de un atributo de la instancia:

class C:
    def __init__(self, format):
        self.format = format

    def process(self, formatting=self.format):
        print(formatting)

Al intentarlo, aparece el siguiente mensaje de error:

NameError: name 'self' is not defined

Quiero que el método se comporte así:

C("abc").process()       # prints "abc"
C("abc").process("xyz")  # prints "xyz"

¿Cuál es el problema aquí, por qué esto no funciona? ¿Y cómo podría hacer que esto funcione?

Respuestas a la pregunta(5)

Su respuesta a la pregunta