2016-08-19 52 views
-1

我會這樣定義的逆np.matrix.I計算功能:這樣定義numpy的轉置和功能逆

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.I值,而不使用m.inv()

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 

(順便說一句,我叫這個類matrix像你一樣,但我更喜歡一個不同的名字,因爲一個矩陣的逆不是1./data。)