定義一個類別A,並且有一個自身ID 1的方法,程式碼如下:
class A(object):
def __init__(self, id):
self.id = id
def newid(self):
self.id = self.id + 1
return A(self.id)
將實例x定義為類別A,id為1,列印x.id:
[In]:
x = A(1)
print(x.id)
[Out]:
1
現在想建立一個同樣也是類別A的實例y, 透過類別A的newid方法進行建立:
[In]:
y = x.newid()
print(y.id)
[Out]:
2
可以得到準確的y的ID為2, 但是發現x的id也被修改了:
[In]:
print(x.id)
[Out]:
2
請問如何實現在不修改原始實例x的情況下將y正確的生成,謝謝!
def newid(self):
self.id = self.id + 1
return A(self.id)
這個必然變呀
你要不變幹嘛+1
應該是return A(self.id+1)
什麼是正確的y