最下位のメソッドがオブジェクトを変更するクラスの一部であるオブジェクトを使用して別のメソッドを呼び出すメソッドを使用してクラスを実装しようとしています。私の実装はもう少し複雑なので、私が話していることを理解できるように、ダミーのコードをいくつか投稿します。
class test:
def __init__(self,list):
self.obj = list
def mult(self, x, n):
x = x*n
def numtimes(self, n):
self.mult(self.obj, n)
ここで、このタイプのオブジェクトを作成して numtimes メソッドを実行すると、self.obj は更新されません。
m = test([1,2,3,4])
m.numtimes(3)
m.obj #returns [1,2,3,4]
[1,2,3,4,1,2,3,4,1,2,3,4]
基本的には、mult メソッドに self.obj を渡して、m.obj を呼び出したときに [1,2,3,4,1,2,3,4, [1,2,3,4] の代わりに 1,2,3,4]。
これは、Pythonがオブジェクトを引数としてメソッドに渡す方法を理解するだけの問題だと思います(オブジェクトのコピーを作成しているように、代わりにポインターを使用する必要があります)が、そうではないかもしれません。私はPythonが初めてで、ここで本当に助けを借りることができます。
前もって感謝します!!