[me]
Actually, unbound builtin methods are a different type than bound builtin methods:
[Jim]
Of course, but conceptually they are similar. You would still encounter the concept if you got an unbound builtin method.
Well, these are all just implementation details. They really are all just callables. [Jp]
This would make pickling (or any serialization mechanism) of `Class.method' based on name next to impossible. Right now, with the appropriate support, this works:
>>> import pickle >>> class Foo: ... def bar(self): pass ... >>> pickle.loads(pickle.dumps(Foo.bar)) <unbound method Foo.bar> >>>
I don't see how it could if Foo.bar were just a function object.
Is this a purely theoretical objection or are you actually aware of anyone doing this? Anyway, that approach is pretty limited -- how would you do it for static and class methods, or methods wrapped by other decorators? -- --Guido van Rossum (home page: http://www.python.org/~guido/)