[Python-Dev] Extended Function syntax
Guido van Rossum
guido@python.org
Tue, 28 Jan 2003 17:44:26 -0500
> > > class Parrot(object):
> > > class count(Property):
> > > def Get(prop, self):
> > > return self._count
> > > def Set(prop, self, value):
> > > self._count = value
> > > def Del(prop, self):
> > > self._count = 0
> > > count = count('Current parrot count')
> > > _count = 0
> >
> > I'm not sure that this has much to recommend it over the current
> > approach. The unused 'prop' argument smells like a remnant of the
> > implementation.
>
> OTOH, if the class were merely used as a container (and never
> instantiated), it looks fairly decent (and indeed doesn't need a
> [filter] modifier, as MWH already suggested):
>
> class Parrot(object):
> _count = 0
> class count(Property):
> """The count property."""
> def __get__(self):
> return self._count
> def __set__(self, value):
> self._count = value
> def __del__(self):
> self._count = 0
These all abuse the class keyword for something that's definitely not
a class. That's a fatal flaw.
--Guido van Rossum (home page: http://www.python.org/~guido/)