Comment passer un argument par défaut de la valeur d'un membre de l'instance à une méthode?

Je veux passer un argument par défaut à une méthode d'instance à l'aide de la valeur d'un attribut de l'instance:

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

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

En essayant ça, j'obtiens le message d'erreur suivant:

NameError: name 'self' is not defined

Je veux la méthode pour se comporter comme ceci:

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

Quel est le problème ici, pourquoi n'est-ce pas le travail? Et comment pourrais-je faire ce travail?

  • ne pas utiliser le format de nom de variable, car il est intégré dans la fonction en python.
  • L'édition de l'erreur de self dans process method
InformationsquelleAutor Yugal Jindle | 2011-11-15