オブジェクトの初期化と、上書きしたくないデータを上書きするメソッドに問題があります。
仕事で複数のコーディング言語を使用しており、行き来するときに専門用語の一部を忘れがちなので、用語が間違っていたら申し訳ありません。
例:
class SR(object):
def __init__(self,arg1):
...some code with arg1...
...import some stuff into a,b,c,d,e...
self.A = array([a,b,c,d,e)]
print self.A
self.B = self.func1(self.A)
print self.A
print self.B
def func1(self,arg2):
arg2[:,:] += ...some math...
arg2[:,:] *= ...more math...
arg3 = ...total of some stuff in arg2...
return arg3
def func2(self,arg4):
...use func3...
...use func1...
return arg5
def func3(self,arg4):
return arg6
def func4(self,arg7):
...output some stuff...
instance = SR(2012)
data = {...numbers...}
X = instance.func2(data)
instance.func4('label1')
data = {...numbers...}
X = instance.func2(data)
instance.func4('label2')
data = {...numbers...}
X = instance.func2(data)
instance.func4('label3')
data = {...numbers...}
X = instance.func2(data)
instance.func4('label4')
data = {...numbers...}
X = instance.func2(data)
instance.func4('label5')
版画:
[a,b,c,d,e]
[a,not_b,not_c,d,not_e]
[sum-of-a-not_b-not_c-d-not_e]
問題:
印刷された 2 行目は、最初の行のように見えるはずです。self.A 内の値を変更できるようにしたいのですが、永続的に変更したくありません。func1 は self.A への参照またはポインタしか受け取っていないと思っていましたが、self.A を上書きしているようです。
これを修正するにはどうすればよいですか?
各インスタンス内のデータを永続的に変更するには func1 を使用する必要がありますが、self.A 内では変更しないでください。