[Python-ideas] @classproperty, @abc.abstractclasspropery, etc.
Guido van Rossum
guido at python.org
Tue Jan 4 01:56:05 CET 2011
> On 20110103 13:22, Dirkjan Ochtman wrote:
>> Do you have actual use cases for these?
On Mon, Jan 3, 2011 at 2:06 PM, K. Richard Pixley <rich at noir.com> wrote:
> Yes. Here's a toy example for abstractclassproperty:
Um, a toy example is pretty much the opposite of a use case. :-(
That said, I am sure there are use cases for static property and class
property -- I've run into them myself.
An example use case for class property: in App Engine, we have a Model
class (it's similar to Django's Model class). A model has a "kind"
which is a string (it's the equivalent of an SQL table name). The kind
is usually the class name but sometimes there's a need to override it.
However once the class is defined it should be considered read-only.
Currently our choices are to make this an instance property (but there
are some situations where we don't have an instance, e.g. when
creating a new instance using a class method); or to make it a class
attribute (but this isn't read-only); or to make it a class method
(which requires the user to write M.kind() instead of M.kind). If I
had class properties I'd use one here.
--Guido van Rossum (python.org/~guido)
More information about the Python-ideas