如何在Python中序列化动态类实例?

时间:2011-06-05 01:07:00

标签: python suds metaclass

我有一个wsdl需要两分钟以上来解析Suds。这太长了,因为我想在短暂的过程中使用客户端对象。我想将客户端对象持久化为静态资源,以避免每次创建客户端的开销。有些人提出了一种singleton模式来将客户端对象存储在正在运行的进程中,但我想要一个短暂的进程。我也不是在寻找关于why酸洗的解释,动态创建的类不起作用,所以只有在你有解决方案时才发布。

from suds.client import Client

url = 'http://mssoapinterop.org/asmx/simple.asmx?WSDL'
client = Client(url)
print client

由于酸洗不起作用,有没有办法使用地址位置从内存中获取客户端对象的确切字节,将其存储为二进制blob,然后将它们加载回内存?也许使用ctypes

1 个答案:

答案 0 :(得分:0)

您是否在问一个特定于suds库的问题。如果您可以将问题抽象为与特定库无关的通用python问题,将会很有帮助。

假设您只对客户端调用输出中的数据感兴趣,其中包含来自HTTP调用的值返回....为什么不将返回的数据转换为您自己的非动态类格式然后序列化/ pickle那。

如果您正在尝试序列化某些似乎很麻烦的TCP连接的状态。

也许你可以澄清一下。