[Python-Dev] Should we do away with unbound methods in Py3k?

Phillip J. Eby pje at telecommunity.com
Fri Nov 23 03:14:14 CET 2007


At 01:14 PM 11/23/2007 +1300, Greg Ewing wrote:
>Guido van Rossum wrote:
> > Not quite. You can evolve an API from an instancemethod into a
> > staticmethod without changing the call sites.
>
>But is there ever any need to do that, rather than leave
>it as an instance method?

Yes.  :)  See below.


>Personally it would never have occurred to me to do that.
>If you want to be able to override it in subclasses, to
>me that's an indication that it should be an instance
>method.

Or a classmethod, or a staticmethod.

The most common use case for this (in my experience) is when you need 
a converter function or some other sort of function that's 
configurable per-instance or per-subclass.  If you are configuring it 
per-class and accessing it per-instance, and reusing an existing 
function, you have to make it a staticmethod.


>Also, what happens if you perform such a migration and
>then some subclasser later finds that he wants access to
>'self'?

Then he overrides it with a normal method.



More information about the Python-Dev mailing list