Heim > Fragen und Antworten > Hauptteil
Definieren Sie eine Klasse A und haben Sie eine Methode mit einer eigenen ID + 1. Der Code lautet wie folgt:
class A(object):
def __init__(self, id):
self.id = id
def newid(self):
self.id = self.id + 1
return A(self.id)
Instanz x als Klasse A definieren, ID ist 1, x.id drucken:
[In]:
x = A(1)
print(x.id)
[Out]:
1
Jetzt möchte ich eine Instanz y erstellen, die auch eine Klasse A ist. Erstellen Sie sie mit der newid-Methode der Klasse A:
[In]:
y = x.newid()
print(y.id)
[Out]:
2
Sie können die genaue ID von y auf 2 bringen, aber Sie stellen fest, dass auch die ID von x geändert wurde:
[In]:
print(x.id)
[Out]:
2
Bitte sagen Sie mir, wie ich y korrekt generieren kann, ohne die ursprüngliche Instanz x zu ändern. Vielen Dank!
给我你的怀抱2017-05-18 10:55:17
def newid(self):
self.id = self.id + 1
return A(self.id)
这个必然变呀
你要不变干嘛+1
应该是return A(self.id+1)
某草草2017-05-18 10:55:17
def newid(self):
self.id = self.id + 1 # 这里self.id 已经是2了
return A(self.id)
将y正确的生成
什么是正确的y