On 10/31/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > Guido> I've come up with a relatively unobtrusive pattern for defining > Guido> setters. Given the following definition: > > ... > > I'm a pretty naive user of properties, so can you explain to me how what you > propose is better than > > class C(object): > def __init__(self): > self._encoding = None > > def get_encoding(self): > return self._encoding > > def set_encoding(self, value): > if value is not None: > unicode("0", value) # Test it > self._encoding = value > encoding = property(get_encoding, set_encoding) > > ?
Mostly so it's easy to add a setter to a property that originally had only a getter. For read-only properties, using @property def name(self): return <whatever> is preferred over def get_name(self): return <whatever> name = property(get_name) > Guido> I'd also like to change property so that the doc string defaults > Guido> to the doc string of the getter. > > How about defaulting it to the first argument to property() which has a doc > string? I considered that briefly, but decided against it -- it could lead to odd results if the getter has no docstring and the setter's docstring is about setting only. -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ 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