如何解决@property可以像带有缓存的字典一样工作吗?
我正在尝试让一个类Foo
具有一个名为@property
的{{1}},其行为类似于Python字典,在其中我们可以使用键和{来访问bars
中的值{1}} bars
:
[
使用]
装饰器的原因是允许在首次访问时缓存键值:
foo = Foo()
foo.bars['hello']
不幸的是,以上代码导致错误:
@property
是否可以使用class Foo():
def __init__(self):
self._bars = {}
@property
def bars(self,key): # <--- looks like this function signature doesnt work
if key not in self._bars.keys():
self._bars[key] = hash(key) # cache computation results on first access
return self._bars[key]
完成此操作?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。