我意识到一个没有方法的类自然get就没有get方法。将方法添加get到实现__getitem__[没有样板]的类的最佳方法是什么?
我试过了:
class Foo():
def __getitem__(self, item):
...
get = dict.get # TypeError
但蟒蛇抱怨:
TypeError: descriptor 'get' for 'dict' objects doesn't apply to 'Foo' object
显然collections.UserDict可以使用,但我希望是懒惰的(因为分辨率很昂贵)并且在项目数据被访问(并通过Foo对象上的键缓存)之前不填充项目数据。
想法?