Как вы можете сериализовать динамические экземпляры классов в Python? - PullRequest
0 голосов
/ 05 июня 2011

У меня есть wsdl, который занимает более двух минут для анализа с Suds. Это слишком долго, потому что я хочу использовать объект клиента в кратковременном процессе. Я хотел бы сохранить объект client как статический ресурс, чтобы избежать затрат на создание клиента каждый раз. Несколько человек предложили своего рода шаблон singleton для хранения клиентского объекта в работающем процессе, но я хочу кратковременный процесс. Я также не ищу объяснения о , почему выборка динамически созданных классов не работает, поэтому отправляйте сообщения только в том случае, если у вас есть решение.

from suds.client import Client

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

Поскольку выборка не будет работать, есть ли какой-нибудь способ извлечь точные байты для объекта клиента из памяти, используя расположение адреса, сохранить его как двоичный двоичный объект и затем загрузить их обратно в память? Может быть, используя ctypes ?

1 Ответ

0 голосов
/ 05 июня 2011

Вы задаете вопрос, относящийся к библиотеке suds. Было бы полезно, если бы вы могли абстрагировать вопрос от общего вопроса о Python, не относящегося к конкретной библиотеке.

Предполагая, что вас интересуют только данные в выходных данных клиентского вызова, которые содержат значения, возвращаемые из HTTP-вызова .... почему бы не перевести возвращенные данные в свой собственный формат класса, который не является динамическим, а затем сериализовать / выбрать тот.

Если вы пытаетесь сериализовать состояние какого-либо TCP-соединения, которое все равно кажется странным.

Возможно, вы можете уточнить.

...