Maison  >  Questions et réponses  >  le corps du texte

Python - Renvoie une nouvelle instance de lui-même via une méthode de classe

Définissez une classe A et disposez d'une méthode avec son propre ID + 1. Le code est le suivant :

class A(object):
    def __init__(self, id):
        self.id = id
    def newid(self):
        self.id = self.id + 1
        return A(self.id)

Définissez l'instance x comme classe A, l'identifiant est 1, imprimez x.id :

[In]:
x = A(1)
print(x.id)

[Out]:
1

Maintenant, je veux créer une instance y qui est également une classe A. Créez-la via la méthode newid de la classe A :

[In]:
y = x.newid()
print(y.id)

[Out]:
2

Vous pouvez obtenir que l'ID exact de y soit 2, mais vous constatez que l'ID de x a également été modifié :

[In]:
print(x.id)

[Out]:
2

Veuillez me dire comment générer correctement y sans modifier l'instance originale x, merci !

漂亮男人漂亮男人2734 Il y a quelques jours613

répondre à tous(2)je répondrai

  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:55:17

    def newid(self):
    self.id = self.id + 1
    return A(self.id)

    Cela va forcément changer
    Pourquoi voulez-vous qu'il reste inchangé+1
    Il devrait être return A(self.id+1)

    répondre
    0
  • 某草草

    某草草2017-05-18 10:55:17

    def newid(self):
            self.id = self.id + 1    # 这里self.id 已经是2了
            return A(self.id)

    Générer y correctement

    Quel est le bon y

    répondre
    0
  • Annulerrépondre