marshal bug?
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Fri Sep 28 04:04:21 EDT 2007
En Fri, 28 Sep 2007 04:26:39 -0300, Anurag <anuraguniyal at gmail.com>
escribi�:
> Now is there a easy way to by pass it (hack around it)
> I tried various options but all fail e.g.
> i= 123; marshal.dumps("%d"%123) != marshal.dumps("%d"%i)
You can't. Don't use marshal to compare objects. You appear to assume that
two objects that compare equal, should have the same marshalled
representation, and that is simply not true.
py> [1, 2.0, 3+0j, "4"] == [1.0, 2+0j, 3, u"4"]
True
> So maybe I have to change all my code to use pickle, which also
> consumes for memory per string.
Neither marshal nor pickle guarantee that equal objects have equal
representations, so in this regard pickle won't help either.
Maybe if you explain what you really want to do someone could suggest a
solution.
--
Gabriel Genellina
More information about the Python-list
mailing list