如何为类分配唯一的id /名称以进行反序列化?

时间:2016-03-11 09:34:27

标签: python serialization

我想为一个类分配一个唯一的id / name来进行反序列化。例如,给出以下python dict:

data = [{"type": 1, "data": {"key": 333}}, {"type": 2, "data": {"foo": "bar"}]

我想使用以下代码来反序列化数据:

class A(object):
    TYPE = 1
    def init_from_dict(self, dict_):
        pass

class B(object):
    TYPE = 2
    def init_from_dict(self, dict_):
        pass

factories = {A.TYPE: A, B.TYPE: B}

for dump in data:
    factory = factories[dump["type"]]
    object_ = factory()
    object_.init_from_dict(dump["data"])

问题是还有其他程序员同时编写类A这样的类。他们可能会为不同的类分配相同的TYPE。我想过用uuid代表一个班级。但这似乎有点矫枉过正。所以我想知道是否有更好的方法可以为一个类分配一个唯一的id / name以进行反序列化?

0 个答案:

没有答案