numpy 배열의 내용을 설정할 때마다 검사를 수행하고 싶습니다. 파이썬 속성을이 용도로 사용할 수 있습니까? 내 접근 방식 :울퉁불퉁 한 배열과 파이썬 속성
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
개체가 여전히 없음이면 getter가 입력됩니다. np_arr이 numpy 배열이면 getters와 setters는 더 이상 작동하지 않습니다.
내가 뭘 잘못하고 있니?
약간의 편집을 위해 죄송합니다. 거의 모든 것을 다루는 정말 우아한 방법이 있다면이 점에 대해 관심을 가지 겠지만, 버퍼에서 작동한다는 사실은 어렵다고 생각합니다. Btw. 고맙습니다 pgm :) – seberg