Steve Holden wrote:
> You have several times mentioned the possibility of a decorator
taking
> more than one argument, but in my understanding of decorators this
just
> wouldn't make sense. A decorator should (shouldn't it) take precisely
> one argument (a function or a method) and return precisely one value
(a
> decorated function or method).
Yes. I think this sould be fixed into the minds of the people exacly
this way You state it:
When writing
@decorator(x,y)
def f():
....
not the so called "decorator" function but decorator(x,y) is the
decorating function and decorator(x,y) is nothing but a callable object
that takes f as parameter. A little correcture of Your statement: it is
NOT nessacary that a function or method will be returned from a
decorator.
def decorator(x,y):
def inner(func):
return x+y
return inner
@decorator(1,2)
def f():pass
>>> f
3
This is perfectly valid allthough not very usefull ;)
Regards,
Kay
--
http://mail.python.org/mailman/listinfo/python-list