Un exemple: Je veux modifier pour nom ou mot de passe de l'objet comme celui-ci: p> l'erreur qui vient : P> undefined variable "self"
3 Réponses :
Vous pouvez écrire votre fonction code> modifier code> pour accepter une dict d'arguments de mots clés afin que vous puissiez dire qui ont été donnés et qui n'étaient pas.
def edit(self, **kwargs): if 'name' in kwargs: self.name = kwargs['name'] if 'password' in kwargs: self.password = kwargs['password']
def edit(self, name, password):
Parce que tu n'es pas encore à l'intérieur de la méthode. Vous passez dans la valeur à auto code>, ce qui signifie à ce point
auto est Aucun code>.
Vous ne pouvez pas utiliser un attribut d'instance car l'argument par défaut d'un procédé - des arguments par défaut est évalué à la durée de définition de la méthode, et non de l'appeler, et à ce point Python n'a aucune idée de ce que Vous devez introduire une certaine logique pour vérifier quel argument a été transmis à la méthode ou non. C'est plus facile à utiliser Vous pouvez même utiliser un opérateur ternaire pour introduire la logique en une seule ligne, si Vous avez l'impression que c'est plus lisible: p> auto code> signifie (Parce qu'aucune instance n'a encore été créée).
Aucun code> comme argument par défaut: p>
Merci, c'était vraiment utile