@decorator syntax is sugar, but for what exactly? (decorator libraries).

David Eppstein eppstein at ics.uci.edu
Tue Aug 10 13:02:30 EDT 2004


In article <d11dcfba.0408100855.3ac0bf9c at posting.google.com>,
 steven.bethard at gmail.com (Steven Bethard) wrote:

> I don't remember who, but someone already mentioned that you can do
> all of these things with the limited syntax if you really want to,
> either with operator.* or eval:
> 
> @eval("foo().bar()")
> @eval("foo or bar")
> @operator.getitem(mydecorators, 'foo')
> @eval("lambda f: foo(f) or bar(f)")

A little more cleanly like this?

def id(x): return x

@id(foo().bar())
@id(foo or bar)
@id(mydecorators['foo'])
@id(lambda f: foo(f) or bar(f))

-- 
David Eppstein
Computer Science Dept., Univ. of California, Irvine
http://www.ics.uci.edu/~eppstein/



More information about the Python-list mailing list