我需要__reverse__
为我在 App Engine 上部署的类提供一个自定义函数,因此它需要与Python 2.5
. __future__
我可以使用导入或解决方法吗?
子类list
化不起作用,因为我需要我的类是dict
.
编辑:
使用OrderedDict
不会解决问题,因为钥匙和物品dict
不一样。list
这是我要创建的对象:
我的对象需要提供与 a 相同的属性
list
,即支持iter(obj)
和reverse(obj)
。元素必须是特殊第三方类的实例。
每个元素都与一个键相关联。
在内部,需要使用它们的键来访问这些对象。这就是我将它们放入映射的原因。
我已经将我的实现修改为list
子类而不是dict
子类,所以这就是我现在所拥有的:
class Foo(list):
pat = {}
def __init__(self):
for app in APPS: # these are strings
obj = SpecialClass(app)
self.append(obj)
self.pat[app] = obj
def __getitem__(self, item):
# Use object as a list
if isinstance(item, int):
return super(Foo, self).__getitem__(item)
# Use object as a dict
if item not in self.pat:
# Never raise a KeyError
self.pat[item] = SpecialClass(None)
return self.pat[item]
def __setitem__(self, item, value):
if isinstance(item, int):
return self.pat.__setitem__(item, value)
return super(Foo).__setitem__(item, value)
编辑2:
既然我的类是 的子类list
,我的问题就解决了。