[Python-Dev] Class decorators (original) (raw)

Phillip J. Eby pje at telecommunity.com
Wed Mar 29 19:27:29 CEST 2006


At 12:48 AM 3/29/2006 -0500, Fred L. Drake, Jr. wrote:

Agreed, but... guess we can't have everything. On the other hand, something like:

class Foo: """Documentation is good.""" @class implements(IFoo) is not ambiguous. Hmm. It even says what it means. :-)

Interesting. I might have to rename some of my decorators to read well that way, though. I'll play around with the idea a bit.

Of course, one of my use cases for class-level declarations is to work around the fact that decorators can't be applied to arbitrary attributes of a class, only to methods. Hm. Let me see:

class SomeThing: """Some docs"""

  @class security.permissions(
      foo = security.Anybody,
      bar = myapp.User,
      ...
  )

class SomeCommand: """usage: some_command [-v|-q] [-f FILENAME] ..."""

  @class options.accept(
     verbose = [
        options.Set('-v', '--verbose', value=True, help="Be loud"),
        options.Set('-q', '--quiet', value=False, help="Be quiet")
     ],
     filename = [
        options.Set('-f', '--file', type=str, metavar="FILENAME")
     ]
  )

Not bad. Not bad at all.



More information about the Python-Dev mailing list