我想为一个类分配一个唯一的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以进行反序列化?