On Feb 7, 2:48 am, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: > Jean-Paul Calderone schrieb: > > > > > > > On Wed, 06 Feb 2008 23:59:27 +0100, "Diez B. Roggisch" > > <[EMAIL PROTECTED]> wrote: > >> [EMAIL PROTECTED] 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). > > Yeah, I missed somehow that the decorator doesn't actually return anything. > > Diez- Hide quoted text - > > - Show quoted text -
Even to myself, the idea is not sounding too bad. You could require that the function have a 'codeblock' argument, (but that goes against pythonic "self" style customs), or pass it as an implicit first parameter. Hybrid context manager and function. -- http://mail.python.org/mailman/listinfo/python-list