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 Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com