I asked this question over on the python-forum-io group but haven't gotten much in the way of answers. I hope someone here can advise me.
I am trying to implement getters and setters in a class using a numpy array as the base instance value, but I am not able to pass an array index argument to the getter function (and probably not to the setter function, but it never gets that far). This is all happening on a Win10x64 system using python 3.8.5. Please help me understand whether what I tried to code here is even possible. Peter The code is as follows: ---- cut here ---- import numpy as np class Matrix: def __init__(self, msize): self.msize = msize self.mvalues = np.full([msize + 2, msize + 2, msize + 2], -1, dtype=np.int32) self.mvalues[1:-1, 1:-1, 1:-1] = 0 self.visited = np.zeros([msize + 2, msize + 2, msize + 2], dtype=np.int32) @property def visits(self, coord): return self.visited[coord[0], coord[1], coord[2]] @visits.setter def incr_visits(self, coord, incr): self.visited[coord[0], coord[1], coord[2]] += incr def Coord(x, y, z): return np.full([3,], (x, y, z), dtype=np.int32) mycoord = Coord(1, 2, 3) print("mycoord={}".format(mycoord)) mygal = Matrix(10) print("Before set:{}".format(mygal.visits(mycoord))) mygal.incr_visits(mycoord, 10) print("After set:{}".format(mygal.visits(mycoord))) ---- cut here ---- The output I get is as follows: ---- output ---- mycoord=[1 2 3] Traceback (most recent call last): File "C:\Users\MyUser\Test\clstest4.py", line 28, in <module> print("Before set:{}".format(mygal.visits(mycoord))) TypeError: visits() missing 1 required positional argument: 'coord' ---- output ---- -- https://mail.python.org/mailman/listinfo/python-list