【发布时间】:2015-02-18 21:54:59
【问题描述】:
我必须腌制一个非常大的结构。在这个结构中,我必须更新一个在结构中被多次引用的字符串。
让我们让它变得更简单:
myStruct = [1, 'myStr', 2, 'myStr']
程序应同时使用新值更新“myStr”。 为了实现这一点,我做了一个这样的字符串引用类:
class StrReference(object):
def __init__(self):
self.value = 'myStr'
myRefStr = StrReference()
myStruct = [1, myRefStr, 2, myRefStr]
现在我可以更新myRefStr.value = 'newStr'
我需要腌制myStruct 对象,以便StrReference 类被腌制为字符串。
[1, 'myStr', 2, 'myStr']
[1, 'newStr', 2, 'newStr']
我确实尝试过 __getstate__ 和 __reduce__ 但没有运气。
腌制结果将始终引用StrReference 类。
有什么建议吗?
【问题讨论】:
-
其实重点是:我需要将 StrReference 类腌制为一个简单的字符串。
-
...或者我需要任何其他方式在我的大结构中一次更新这些字符串
标签: python-2.7 pickle