gpt4 book ai didi

python - 版本化字典的接口(interface)

转载 作者:太空宇宙 更新时间:2023-11-03 23:51:08 26 4
gpt4 key购买 nike

我有一个版本化的文档存储,我想通过类似 dict 的界面访问它。常见用法是访问最新修订版(get、set、del),但也应该能够访问特定修订版(键始终是 str/unicode 或 int)。

from UserDict import DictMixin
class VDict(DictMixin):
def __getitem__(self, key):
if isinstance(key, tuple):
docid, rev = key
else:
docid = key
rev = None # set to tip rev

print docid, rev
# return ...

In [1]: d = VDict()

In [2]: d[2]
2 None

In [3]: d[2, 1]
2 1

这个解决方案有点棘手,我不确定它是否是一个干净、易于理解的界面。我应该提供一个功能吗

def getrev(self, docid, rev):
...

代替?

最佳答案

是的,提供不同的 API 来获取不同的版本。用于检索特定修订的特定项目的单个方法调用,或用于获取特定修订的“ View ”的方法调用,然后您可以像普通字典一样访问它,具体取决于这样的“ View ”是否会见大用处。或者两者兼而有之,考虑到 dict-view 解决方案无论如何都需要某种方法来获取特定修订的项目:

class RevisionView(object):
def __init__(self, db, revid):
self.db = db
self.revid = revid
def __getitem__(self, item):
self.db.getrev(item, self.revid)

关于python - 版本化字典的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/162656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com