2016-11-22 153 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'的一个实例 –