numpy 配列が設定されるたびにその内容をチェックしたいと思います。これにpythonプロパティを使用できますか? 私のアプローチ:
import numpy as np
class Obj():
def __init__(self):
self._np_arr = None
@property
def np_arr(self):
if self._np_arr is None:
self._np_arr = np.ones(10)
return self._np_arr
@np_arr.setter
def np_arr(self, value):
if np.sum(value)>10:
raise ValueError('Error message')
self._np_arr = value
if __name__ == '__main__':
o = Obj()
print o.np_arr
o.np_arr = np.zeros(10) # ok
o.np_arr = np.ones(10)*2 # not ok
print o.np_arr
オブジェクトがまだ None のときに getter に入ります。np_arr が numpy 配列になると、ゲッターとセッターは機能しなくなります。
私は何を間違っていますか?