我有一个持有表格的班级(列表清单)。这个类应该返回一个类似于sql的rowpointer。对于这个行指针,我想用weakref.proxy
周引用表行(列表)。但是,我想为行指针添加其他功能,例如覆盖__getitem__
方法以允许通过列名称进行访问。
是否有一种简单的方法可以获得相同的行为(将对象的访问权限转换为引用的对象),还是必须重新实现所有特殊方法?
作为一种简单的方法,我可以想到继承(但是因为我在weakref.ProxyType
上找不到文档,我甚至不会尝试从中继承,(如何初始化?)。另一种选择可能是定义一些特殊的方法甚至总是将“特殊”(__xxx__
)函数调用重定向到引用的对象,即使this使得这似乎不可能。
答案 0 :(得分:0)
进行了一些研究并发现了这一点:
http://code.activestate.com/recipes/496741-object-proxying/ http://pypi.python.org/pypi/ProxyTypes
简而言之,可以转发所有呼叫(我认为活动状态的收件人更好),但我还没有找到实现的方法:
$a = proxy([1,2,3])
$b = a
$print type(b)
>>list
我会满足于只使用一个与列表非常相似的对象。