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 !
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)
Quel est le bon y