[Python-ideas] @return?

MRAB python at mrabarnett.plus.com
Thu Apr 15 02:16:01 CEST 2010


Jim Jewett wrote:
> On Wed, Apr 14, 2010 at 6:07 PM, Mathias Panzenböck
> <grosser.meister.morti at gmx.net> wrote:
> 
>> Maybe only allow them [function definitions] at certain places
>> where they can be seen as an
>> extension to an already existing statement syntax (not to an
>> expression syntax):
> 
>> foo.bar = def(egg, spam):
>>        pass
> 
> There have been some proposals to allow dotted names and/or indexes in
> place of the name, so that would be written as
> 
>     def foo.bar(egg, spam):
>         pass
> 
> They haven't been permanently rejected, but they've been put on hold
> for the same reason class decorators were -- once allowed, they can't
> be backed out, so lets wait until we're *sure* we need them.
> 
>> return def(egg, spam):
>>        pass
> 
> This is really only useful inside another function, and isn't a clear
> win.  (Would you return the function, or the result of calling the
> function?
 >
The function itself.

> Could you put () after the definition to call it?
 >
Probably not.

> Could you use other decorators?  Could you put a comma after the
> definition to return a tuple of the function and something?)
> 
> And note that today's idiom is merely sub-optimal, not outright
> terrible.  You can still use your own short name instead of the long
> one you need for an external API.
> 
>     def wrap():
>         def _(egg, spam)
>             pass
>         return _
> 
How about:

     def wrap():
         def return(egg, spam):
             pass

:-)



More information about the Python-ideas mailing list