予期しない問題が発生したとき、Pythonでいくつかの作業を行っていました。クラスがあり、2つの変数xとyがあります。xとyは、それぞれが独自のデータを持つクラスの個別のコピーであることを意味します。そこで、xをクラスに等しく設定し、それにいくつかの値を与えてから、yでも同じことを行います。ただし、そのデータを使用しようとすると、xの値を上書きしたことに気付きます。使用するクラスの2つの別々のコピーを作成したのではなく、同じクラスへの2つの参照を作成したようです。したがって、コードの一般的な例は次のとおりです。
x = someClass()
x.set(2, 0)
y = someClass()
y.set(3, 0)
print(x)
最終的には、2ではなく3が出力されます。変数ごとに異なるデータを保持するために、クラスの個別の「バージョン」を作成したいと思います。しかし、その方法についてはよくわかりません。Python3.3を使用します。クラスのコードは次のとおりです。
class someClass:
def __init__(self, list = [0,0,0,0,0,0,0,0,0,0]):
self.list = list
def __repr__(self):
return str(self.list)
def set(self, loc, val):
if ((loc >= 0) & (loc <= 9)):
self.list[loc] = val