Using pickle with setattr
dataangel
k04jg02 at kzoo.edu
Thu Oct 14 21:48:42 EDT 2004
Sorry I wasn't clear, I didn't even realize you could simply assign
stuff to instance variables without them being formerly declared, I'm
still in the C mindset :P Taking this into account, I asked if my
question was stupid ;)
I didn't test this myself because there are alot of different types of
things I could add to a class instance, list, file objects, etc. and it
wasn't clear what would work from my limited ability to interpret the
pickle.py. I'll take a better look at the docs next time around.
Thanks for the help,
dataangel
Andrew Dalke wrote:
> dataangel wrote:
>
>>> I'm wondering whether or not the standard Pickle module will handle
>>> this or not -- will an object pickle correctly if it has methods
>>> that are not in its original class definition?
>>
>
> Instances pickle references to class by name, not by value.
> If you have restore to a class with the same name but different
> semantics then it may or may not work. It depends on how it
> was coded.
>
>>> That I'm not planning to do -- I'm changing the attributes of the
>>> object itself.
>>
>
> Changing the attributes of the instance or the class? The former
> goes into the pickle'd dictionary, the latter does not.
>
>>> If it won't, what are my options? Also, is there a module available
>>> for saving the complete state of an object such that it is loadable
>>> without the python source for the original class?
>>
>
> No. Consider
>
> import os
>
> class Spam(object):
> my_os = os
>
> How can pickle save all of 'os'? Or consider
>
> class Read:
> infile = open("/etc/passwd")
> def __init__(self):
> self.line = self.infile.readline()
>
> File objects can't be pickled.
>
>
>> I'm flabbergasted. Nobody on the python mailing list knows? I've
>> stumped the experts? ;)
>>
>> Or maybe my question is stupid for somer reason? :P
>
>
> You weren't clear about what you wanted. It's hard for us
> to read your mind. You could have gotten some of these answers
> by reading the docs at and around
> http://www.python.org/doc/lib/node65.html
>
> and through experimentation.
> Andrew
> dalke at dalkescientific.com
More information about the Python-list
mailing list