我需要能够将对象的任何字符串表示形式转换回其在另一台计算机上的原始状态。我将使用类 A 作为示例:
class A:
def __init__(self):
self.data = "test"
self.name = "Bob"
def __str__(self):
return str(self.data) + " " + str(self.name)
A 类对象必须能够在单独的计算机上重新创建。因此,如果一台单独的计算机接收到(“A”、“memberData memberName”),它可以将其转换为 A 类对象。我需要这对任何用户定义的对象都是可能的。最好我希望用户只需要创建一个 toString() 和 toObject() 方法。
最佳答案
您正在寻找序列化对象的方法;这是一个非常标准的问题。 pickle
是标准解决方案,您应该首先研究它。如果你想让一个类成为 pickleable,你需要在它上面定义一些自定义方法,并确保在源计算机和目标计算机上都可以找到定义它的模块。然后你可以 pickle.dumps(obj)
返回一个字符串,然后 pickle.loads(my_str)
重建对象。
其他选项包括 marshal
(低级)和 json
(网络数据标准)。
关于python - Python 中的字符串到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6433528/