2016-11-22 151 views
1

我有一個處理Numpy矩陣和一些額外信息的類。Python:以類似字典的方式直接訪問屬性

import numpy as np 

class MyClass: 
    def __init__(self, v): 
     self.values = v 

plop = MyClass(np.matrix([[1, 2], [3, 4]])) 

矩陣被任命爲,訪問它,我寫:

plop.values[1, 1] # Returns 4 

是否有可能直接訪問它?我的意思是,這樣做的:

plop[1, 1] # Should returns 4 too 

我看到this post但它接縫,該方案允許[]只有一個級別。

謝謝!

+0

'撲通= np.matrix([[1,2] ,[3,4]]); plop [1,1]'? – dm03514

+2

實際上,MyClass還有其他的屬性,我沒有寫在這裏。 – Picani

回答

4

就在這個方法添加到您的類

def __getitem__(self, indices): 
    return self.values[indices] 

而且,有機會,它會看到__getitem__切片對象如何工作

+0

這很完美,謝謝! – Picani

-1

你直接訪問它,我認爲是有用的。

撲通= np.matrix([[1,2],[3,4]])

情節[1,1]

+0

要引用OP:「還有其他屬性MyClass,我沒有寫在這裏」所以'plop'必須是'MyClass'的一個實例 –