On 2/18/17, Steven D'Aprano <[email protected]> wrote:
Sorry Steve that I use your words probably too much out of context!
I just want to reuse your examples to analyze if proposed "delayed
execution" is really necessary. Thanks for them! :)
> print("Start")
> result = delayed: get_nth_prime(10**6) # I dislike this syntax
> print("Done")
> print(result)
If we change "delayed" keyword to "lambda" keyword then we just need
to explicitly say when to evaluate (which I am not sure is bad thing).
On 2/18/17, Steven D'Aprano <[email protected]> wrote:
> The caching means that:
> spam = delayed: calculate(1)
> eggs = spam
>
> eggs == spam would be true, and calculate would have only been called once,
> not twice.
If we really need something like this then we could use "def" keyword
(for delayed execution) and explicitely caching (for example with
functools.lru_cache).
print("Start")
@functools.lru_cache(1)
def result():
return get_nth_prime(10**6) # this code is delayed
print("Done")
print(result())
print("Start 2")
print(result())
result2 = result
print(result() == result2())
print("Done 2")
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/