扩展weakref代理/复制行为

时间:2012-06-26 13:52:34

标签: python jython jython-2.5

我有一个持有表格的班级(列表清单)。这个类应该返回一个类似于sql的rowpointer。对于这个行指针,我想用weakref.proxy周引用表行(列表)。但是,我想为行指针添加其他功能,例如覆盖__getitem__方法以允许通过列名称进行访问。

是否有一种简单的方法可以获得相同的行为(将对象的访问权限转换为引用的对象),还是必须重新实现所有特殊方法?

作为一种简单的方法,我可以想到继承(但是因为我在weakref.ProxyType上找不到文档,我甚至不会尝试从中继承,(如何初始化?)。另一种选择可能是定义一些特殊的方法甚至总是将“特殊”(__xxx__)函数调用重定向到引用的对象,即使this使得这似乎不可能。

1 个答案:

答案 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

我会满足于只使用一个与列表非常相似的对象。