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

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


At 07:57 PM 11/23/2007 +1300, Greg Ewing wrote:
>Phillip J. Eby wrote:
>>If you are configuring it per-class and accessing it per-instance, 
>>and reusing an existing function, you have to make it a staticmethod.
>
>I don't understand that. Can you provide an example?


def two_decimal_places(text):
     # ...

class Field:
     # doesn't need staticmethod because str isn't a function
     converter = str

     def __init__(self, title):
         self.title = title


class MoneyField(Field):
     # does need staticmethod because two_decimal_places
     # doesn't take a self
     converter = staticmethod(two_decimal_places)


def get_input(field):
     return field.converter(raw_input(field.title+': '))


>> > some subclasser later finds that he wants access to
>> > 'self'?
>>Then he overrides it with a normal method.
>
>If that works, I don't see why making the default
>method a normal method wouldn't work also.

Because sometimes you want to reuse an existing function, as shown above.



More information about the Python-Dev mailing list