存储类型数据的最佳方法

时间:2019-05-02 05:05:33

标签: python cpython

我想编写一个函数def singleton_of(cls): ...,该函数需要将实例存储在某个地方。

方法1:

setattr(cls, ..., instance)存储实例,但是某些内置类型无法setattr

方法2:

将实例存储在全局弱引用字典(Dict[Type, object])中,但是某些类型无法创建弱引用。

方法3:

将实例存储在全局字典(Dict[Type, object])中,但是某些类型不可散列,并且无法收集。

方法4:

将实例存储在全局列表(List[Tuple[Type, object]])中,但这具有糟糕的查询性能,并且无法收集。

方法5:

从后备方式1到方式4一对一。

方法6:

将实例存储在闭包中(例如在cls上使用装饰器),但这需要在调用singleton_of之前创建闭包,我不喜欢它。

事实上,我正在编写一个应该能够存储任何类型的元数据的库。

还有其他选择吗?

0 个答案:

没有答案