我意识到一个没有方法的类自然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
对象上的键缓存)之前不填充项目数据。
想法?