[Edu-sig] Design patterns

Arthur ajsiegel at optonline.net
Sun Aug 21 14:49:09 CEST 2005



> -----Original Message-----
> From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On
> Behalf Of Scott David Daniels
> 
> Here's how to do the angles in 2.4 w/ properties:
> 
> 

<snip>

>      @property
>      def A(self):
>     	return math.acos((-self.a**2 + self.b**2 + self.c**2)
> 			 / (2.0 * self.b * self.c))

Hmmm...

We seem to be saying that @property works out-of-the box as a decorator in
2.4 - at least where we want read only properties. 

I can only assume that this is more of a side-effect of the introduction of
decorators, than a feature fully designed into the language. Which is not to
say that it is not a fortunate side effect.

But it is unfortunate combo for me - since I never fully understood the
purpose of properties, and don't fully get the mechanics of decorators.  

My most important points of confusion:

What beyond sugar for leaving off a "()" when trying to retrieve a value
from a method are we accomplishing by using properties? I have tended to
look at properties mostly  an accommodation to those coming from other
languages which have something similar, but never as something that was core
to Python or a Pythonic approach to things.  Am I missing something
fundamental?

and

Am I correct that the use of property as a "built-in" decorator is not
designed into the language  - at least in the same way that @classmethod has
been? What would it take to create a @property decorator that allows one to
set as well as get? Would we want to?


Art





More information about the Edu-sig mailing list