[Python-Dev] more on pickling

Christian Tismer tismer at tismer.com
Mon Nov 17 17:46:47 EST 2003

Hi again,

trying to pickle bound python methods,
I'm now running into another problem.
It seems to give a problem when asking
for an attribute of a bound method:

 >>> class a:
...  def x(self): pass
 >>> a.x                   # good so far
<unbound method a.x>
 >>> a().x                 # very good
<bound method a.x of <__main__.a instance at 0x007A6CE8>>
 >>> a.x.__reduce__        # naaaaah? Sounds bad
<built-in method __reduce__ of function object at 0x00792630>
 >>> a().x.__reduce__      # very bad.
<built-in method __reduce__ of function object at 0x00792630>
 >>> a.x.__reduce__==a().x.__reduce__

So I have the impression these methods loose their
relationship to their originating object.
Is this behavior by intent, i.e. is it impossible to write
a working __reduce__ method for a bound class method?

thanks again - chris
Christian Tismer             :^)   <mailto:tismer at tismer.com>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9a     :    *Starship* http://starship.python.net/
14109 Berlin                 :     PGP key -> http://wwwkeys.pgp.net/
work +49 30 89 09 53 34  home +49 30 802 86 56  mobile +49 173 24 18 776
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
      whom do you want to sponsor today?   http://www.stackless.com/

More information about the Python-Dev mailing list