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.
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com