[IronPython] .NET attributes

Michael Foord fuzzyman at voidspace.org.uk
Fri Sep 15 15:22:48 CEST 2006

Charlie Moad wrote:
> On 9/14/06, Dino Viehland <dinov at exchange.microsoft.com> wrote:
>> We're tentatively thinking that this is a 2.0 feature but if we figured out a syntax we really liked we'd try to get it into 1.1.
> It seems as if there are two clean ways to do this in my mind.
> 1. Use python2.4's decorator sytax and extend it to allow class and
> class variable attribute declaration.  This has the pitfall of
> breaking cpython compatibility with decorators though.  At the same
> time, why use decorators when you can use attributes?
When this was last discussed on Python-Dev, Guido agreed that class 
decorators could go into core Python. (Partly because of the IronPython 

The best thing to do (IMHO) is to see if a syntax can be agreed on 
Python-Dev, to ensure future compatibility with CPython.

Michael Foord

> 2. Thinking about this problem brings me back to an elegant solution
> that Philip Eby came up with to allow python2.3 users to use
> decorators for turbogears.
> class Root:
>    [expose()]
>    def method(): ...
> Granted special logic has to be added to the decorator method.  This
> prompted me to try:
> import clr
> clr.AddReference('System.Web.Services')
> from System.Web.Services import *
> [WebServiceAttribute]
> class Echo(WebService):
>     [WebMethodAttribute]
>     def echo(msg):
>         return msg
> The advantage here is syntactically correct python.  IP could just add
> some special logic to apply the attributes.  Another advantage is that
> it matches the sytax of C# attributes.  Evil programmers could even
> apply decorators and attributes to a method!
> _______________________________________________
> users mailing list
> users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.12.4/448 - Release Date: 14/09/2006

More information about the Ironpython-users mailing list