版本字典的接口

2024-06-06 10:02:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个版本控制的文档存储,我想通过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

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

^{pr2}$

相反呢?在


Tags: keyin文档none用法getrev版本控制
1条回答
网友
1楼 · 发布于 2024-06-06 10:02:16

是的,提供不同的API来获取不同的版本。一个用于检索特定修订的特定项的方法调用,或者用于获取特定修订的“视图”的方法调用,然后可以像普通dict一样访问该视图,具体取决于这样的“视图”是否有多大用处。或者两者兼而有之,考虑到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)

相关问题 更多 >