[Python-Dev] method decorators (PEP 318) (original) (raw)
Shane Holloway (IEEE) shane.holloway at ieee.org
Mon Mar 29 15:20:12 EST 2004
- Previous message: [Python-Dev] method decorators (PEP 318)
- Next message: [Python-Dev] method decorators (PEP 318)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I think one important thing to keep in mind is that many decorated methods end up being very similar, and hence you would want the syntax to allow for compressing them. For instance, one would want to be able to write the following code block:
class Example(object):
def foo(self, *args) [
synchronized(lock),
attributes(author='SWH', protocol=IMyProtocol),
myArgumentWireMarshaller,
]:
pass # Code goes here
def bar(self, *args) [
synchronized(lock),
attributes(author='SWH', protocol=IMyProtocol),
myArgumentWireMarshaller,
]:
pass # Code goes here
def baz(self, *args) [
synchronized(lock),
attributes(author='SWH', protocol=IMyProtocol),
myArgumentWireMarshaller,
]:
pass # Code goes here
more like:
class Example(object):
IMyProtocolMethod = [
synchronized(lock),
attributes(author='SWH', protocol=IMyProtocol),
myArgumentWireMarshaller,
]
def foo(self, *args) [methodreturns(float)] + IMyProtocolMethod:
pass # Code goes here
def bar(self, *args) [methodreturns(str)] + IMyProtocolMethod:
pass # Code goes here
def baz(self, *args) [methodreturns(int)] + IMyProtocolMethod:
pass # Code goes here
I think that as decorators get used more and more, we will want some way to shorthand a long list of common decorators. Note that I'm not sold on the exact syntax, just the need for the shorthand in a maintainable system. After all, copy and paste gets very sticky over time.
Thanks, -Shane
- Previous message: [Python-Dev] method decorators (PEP 318)
- Next message: [Python-Dev] method decorators (PEP 318)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]