Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #107499

Re: A pickle problem!

From Ian Kelly <ian.g.kelly@gmail.com>
Newsgroups comp.lang.python
Subject Re: A pickle problem!
Date 2016-04-22 10:27 -0600
Message-ID <mailman.18.1461342496.2861.python-list@python.org> (permalink)
References <nfbhh6$dbd$1@gioia.aioe.org> <nfc04n$u2o$1@gioia.aioe.org> <CALwzidkTeXOMdAkuQ3UdcJhWNUQjzjzp4eZqmSOXtydMurka6w@mail.gmail.com>

Show all headers | View raw


On Thu, Apr 21, 2016 at 7:52 PM, Paulo da Silva
<p_s_d_a_s_i_l_v_a_ns@netcabo.pt> wrote:
> Às 22:43 de 21-04-2016, Paulo da Silva escreveu:
>> Hi.
>>
>> Why in this code fragment self.__name is not kept between pickle
>> dumps/loads? How to fix it?
>>
>> Thanks.
>>
>> import pickle
>> import pandas as pd
>> import numpy as np
>>
>> class C(pd.DataFrame):
>>       def __init__(self,name,*a,**b):
>>               super(C,self).__init__(*a,**b)
>>               self.__name=name
>>
>>       def GetName(self):
>>               return self.__name
>>
> # Adding this works but looks tricky!
>
>         def __getstate__(self):
>                 dfstate=super(C,self).__getstate__()
>                 cstate=(dfstate,self.__name)
>                 return cstate
>
>         def __setstate__(self,cstate):
>                 super(C,self).__setstate__(cstate[0])
>                 self.__name=cstate[1]

Probably this is necessary because the DataFrame class is already
customizing its pickle behavior without taking into account the
possibility of added attributes by subclasses. I think that your
solution of wrapping the state of the superclass looks fine.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

A pickle problem! Paulo da Silva <p_s_d_a_s_i_l_v_a_ns@netcabo.pt> - 2016-04-21 22:43 +0100
  Re: A pickle problem! Paulo da Silva <p_s_d_a_s_i_l_v_a_ns@netcabo.pt> - 2016-04-22 02:52 +0100
    Re: A pickle problem! Ian Kelly <ian.g.kelly@gmail.com> - 2016-04-22 10:27 -0600
      Re: A pickle problem! Paulo da Silva <p_s_d_a_s_i_l_v_a_ns@netcabo.pt> - 2016-04-22 21:21 +0100
        Re: A pickle problem! Ian Kelly <ian.g.kelly@gmail.com> - 2016-04-22 14:33 -0600
          Re: A pickle problem! Paulo da Silva <p_s_d_a_s_i_l_v_a_ns@netcabo.pt> - 2016-04-22 21:48 +0100
  Re: A pickle problem! Fabien <fabien.maussion@gmail.com> - 2016-04-24 12:20 +0200

csiph-web