Como passar um valor de argumento padrão de um membro da instância para um métod
Eu quero passar um argumento padrão para um método de instância usando o valor de um atributo da instância:
class C:
def __init__(self, format):
self.format = format
def process(self, formatting=self.format):
print(formatting)
Ao tentar isso, recebo a seguinte mensagem de erro:
NameError: name 'self' is not defined
Eu quero que o método se comporte assim:
C("abc").process() # prints "abc"
C("abc").process("xyz") # prints "xyz"
Qual é o problema aqui, por que isso não funciona? E como eu poderia fazer isso funcionar?