Code block function syntax, anonymous functions decorator
Jean-Paul Calderone
exarkun at divmod.com
Wed Feb 6 18:45:00 EST 2008
On Wed, 06 Feb 2008 23:59:27 +0100, "Diez B. Roggisch" <deets at nospam.web.de> wrote:
>castironpi at gmail.com schrieb:
>> def run3( block ):
>> for _ in range( 3 ):
>> block()
>>
>> run3():
>> normal_suite()
>>
>> Introduces new syntax; arbitrary functions can follow 'colon'.
>>
>> Maintains readability, meaning is consistent.
>>
>> Equivalent to:
>>
>> def run3( block ):
>> for _ in range( 3 ):
>> block()
>>
>> @run3
>> def anonfunc():
>> normal_suite()
>>
>> Simplification in cases in which decorators are use often.
>
>This is non-sensical - how do you invoke anonfunc? They would all bind
>to the same name, run3. Or to no name as all, as your "spec" lacks that.
As he said, the decorator version is the _equivalent_ to the syntax he
was proposing. The point isn't to decorate the function, so perhaps he
shouldn't have used decorator syntax, but instead:
def anonfunc():
normal_suite()
run3(anonfunc)
del anonfunc
So it's not non-sensical. It's a request for a piece of syntax.
>
>Besides, it's butt-ugly IMHO. But taste comes after proper definition...
It's properly defined. Not that I'm endorsing this or anything. I'd
rather not see half-assed syntax proposals at all, even if they're super
great (and some of the syntax that's made it into Python is much worse
than this).
Jean-Paul
More information about the Python-list
mailing list