2016-08-19 5 views
-1

역 NumPy와 트랜스와 같은 함수를 정의제가 <code>np.matrix.I</code> 역의 계산과 같은 기능을 정의 할

class matrix: 
    def __init__(self, data): 
    self.data = data 
    self.I = 1.0/data 

    def inv(self): 
    return 1.0/self.data 

if __name__ == '__main__': 
    m = matrix(10) 
    m.I 

m.inv()를 사용하지 않고 m.I의 값을 산출하기가 가능?

In [3]: m.data = 20 
In [4]: m.inv() 
Out[4]: 0.05 
In [5]: m.I 
Out[5]: 0.1 

답변

2

당신은 property이 할 수 있습니다 :

class matrix: 
    def __init__(self, data): 
    self.data = data 

    @property 
    def I(self): 
    return 1.0/self.data 

if __name__ == '__main__': 
    m = matrix(10) 
    print m.I # 0.1 
    m.data = 20 
    print m.I # 0.05 

을 (AS를 제외하고, 당신이 그랬던 것처럼 나는이 클래스 matrix라고,하지만 난 행렬의 역행렬 때문에 다른 이름을 원합니다 1./data이 아닙니다.)

관련 문제