如何使python类“ast.literal_eval()”兼容?

问题描述:

我有我的自定义类代表一个对象。 我想使该对象与“ast.literal_eval()”兼容“如何使python类“ast.literal_eval()”兼容?

我该怎么做?如有必要,我可以将必要的方法/代码添加到我的课程中。

+3

'ast.literal_eval'评估文字。 Python不支持用户定义的文字。 Ergo,你不能使用'ast.literal_eval'来产生一个用户定义的类型。如果可以的话,'ast.literal_eval'的所有安全保证将会从窗口中消失。 – ShadowRanger

你不能。你需要从头开始重新实现它,并在其中添加对你的类的支持。

+0

我的问题是我该如何将支持添加到我的课程? – sh0731

+0

你不能。 'ast.literal_eval()'选择它接受的内容。 –

+0

哦,这是一个无赖。谢谢! – sh0731

因为你用Pyro标记了你的问题,我假设你在使用Pyro的远程方法调用时在序列化你自己的类的上下文中提出这个问题。 Pyro提供a mechanism to do that