On Tue, 05 Apr 2005 02:55:35 -0400, Steve Holden <[EMAIL PROTECTED]>
wrote:
>Ron_Adam wrote:
>> Ok, that post may have a few(dozen?) problems in it. I got glitched
>> by idles not clearing variables between runs, so it worked for me
>> because it was getting values from a previous run.
>>
>> This should work better, fixed a few things, too.
>>
>> The decorators can now take more than one argument.
>> The function and arguments lists initialize correctly now.
>>
>Ron:
>
>I've followed your attempts to understand decorators with interest, and
>have seen you engage in conversation with many luminaries of the Python
>community, so I hesitate at this point to interject my own remarks.
I don't mind. It might help me communicate my ideas better.
>In a spirit of helpfulness, however, I have to ask whether your
>understanding of decorators is different from mine because you don't
>understand them or because I don't.
Or it's just a communication problem, and we both understand.
Communicating is not my strongest point. But I am always willing to
clarify something I say.
>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).
>
>> It doesn't work with functions with more than one variable. It seems
>> tuples don't unpack when given to a function as an argument. Any way
>> to force it?
What I was referring to is the case:
@decorator(x,y,z)
As being a decorator expression with more than one argument. and not:
@decorator(x)(y)
This would give a syntax error if you tried it.
>>> @d1(1)(2)
SyntaxError: invalid syntax
The problem I had with tuple unpacking had nothing to do with
decorators. I was referring to a function within the class, and I
needed to be consistent with my use of tuples as arguments to
functions and the use of the '*' indicator.
>Do you understand what I mean when I say a decorator should take one
>function as its argument and it should return a function?
>
>regards
> Steve
Hope this clarifies things a bit.
Cheers,
Ron
--
http://mail.python.org/mailman/listinfo/python-list