[Python-ideas] Delayed Execution via Keyword

Pavol Lisy pavol.lisy at gmail.com
Sun Feb 19 17:15:14 EST 2017


On 2/19/17, David Mertz <mertz at gnosis.cx> wrote:
> On Sun, Feb 19, 2017 at 10:13 AM, Joseph Hackman <josephhackman at gmail.com>
> wrote:
>>
>> My honest preference would be that the [] is evaluated fresh each time
>> the
>> function is called.
>> def stuff(arg=delayed f()):
>> would result in f() being called every time stuff() is. This seems more
>> valuable to me than just doing it once when the function is first called.
>>
>
> This doesn't make sense.  Function definition time is very different than
> function execution time.  Changing that distinction is a WAY bigger change
> than I think we should contemplate.
>
> Moreover, there is a completely obvious way to spell the behavior you want:
>
> def stuff():
>
>     arg = f()
>
>     # ... whatever ...
>
>
> This is exactly the obvious way to spell "f() is called every time stuff()
> is".

A few more complicated will be set non default value to argument.

But how to spell same behaviour in this case? ->

    def stuff(arg=delayed locals())


More information about the Python-ideas mailing list