0
votes

Comment prérégler la variable d'objet dans la méthode en python

Un exemple: xxx pré>

Je veux modifier pour nom ou mot de passe de l'objet comme celui-ci: p> xxx pré>

l'erreur qui vient : P>

undefined variable "self"


0 commentaires

3 Réponses :


0
votes

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']


0 commentaires

0
votes
def edit(self, name, password):

1 commentaires

Parce que tu n'es pas encore à l'intérieur de la méthode. Vous passez dans la valeur à auto , ce qui signifie à ce point auto est Aucun .



0
votes

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 auto signifie (Parce qu'aucune instance n'a encore été créée).

Vous devez introduire une certaine logique pour vérifier quel argument a été transmis à la méthode ou non. C'est plus facile à utiliser Aucun comme argument par défaut: xxx

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: xxx


1 commentaires

Merci, c'était vraiment utile