2010-10-07 9 views

Respuesta

2

Si usa el protocolo predeterminado (0) que está basado en texto, entonces las cosas deben funcionar. No estoy seguro de qué pasará si usa un protocolo superior. Es muy fácil probar esto ...

+1

Gracias por la respuesta. Es interesante que enfatice "debería", porque ahora estoy usando el protocolo predeterminado tanto en CPython como en cPickle de IronPython, y estoy obteniendo errores de "EOF inesperado". ¿Conoces alguna razón por la que esto puede ocurrir? Mis archivos se están leyendo y escribiendo en los modos 'rb' y 'wb', respectivamente. – JustOnePixel

+2

Bien, sin duda es cierto errores de módulo. Hay pruebas que incluyen salmueras de una u otra versión que funcionan en tiempo de ejecución. Recientemente escribí un código que usa la salida Pickle de CPython combinada con el destrabajador de IronPython y no tuve problemas. La única diferencia de potencial es que IronPython puede generar cadenas unicode donde CPython generará cadenas ASCII. Pero aun así, estos deberían desvanecerse o desmenuzarse en las implementaciones. ¿Es posible reducir el problema a una muestra más pequeña? –

0

Funcionará porque cuando deshace los objetos durante la carga() usará las definiciones actuales de las clases que haya definido ahora, no cuando definieron los objetos.

IronPython es simplemente Python con la biblioteca estándar implementada en C# para que todo emita IL. Los módulos de enlechado CPython y IronPython tienen la misma funcionalidad, excepto que uno se implementa en C y el otro en C#.

Cuestiones relacionadas