¿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?