[Python-ideas] C# style properties

Neil Toronto ntoronto at cs.byu.edu
Sat Jul 14 06:54:11 CEST 2007


Greg Ewing wrote:
> Neil Toronto wrote:
>
>  > It might be nice to be able
>  > to declare a one-off namespace:
>
> Yes, things like this have been suggested before.
> There was a thread not long ago about a 'make'
> statement, for example, and there have been numerous
> suggestions for a 'namespace' statement.
>
> My favourite version would be something like
>
>    intance foo(property):
>
>      def __get__(self):
>        ...
>
>      def __set__(self, x):
>        ...
>   

Surely you meant to write "instance". :) I like that spelling. The 
keyword has exactly the right meaning. I imagine having to create a new 
keyword just for a bit of syntactic sugar would be the main argument 
against it.

It's not just about saving keystrokes, though.

> which would be roughly equivalent to
>
>    class _foo(property):
>      ...
>
>    foo = _foo()
>
> but without the intermediate class name.
>   

Seems this sort of thing would be trivial with a class decorator, 
something like "@instance" or "@oneinstance". ("@singleton" would 
probably make people expect a call to the class to return a unique 
instance only the first time.) As part of my new delvination (that's a 
word) into metaclasses, I've been trying to make a metaclass that does 
the same thing. (No spoilers, please!)

Neil




More information about the Python-ideas mailing list