On Fri, 17 Feb 2017 at 19:38 Joseph Jevnik <joe...@gmail.com> wrote:

> Delayed execution and respecting mutable semantics seems like a nightmare.
> For most indexers we assume hashability which implies immutability, why
> can't we also do that here? Also, why do we need to evaluate callables
> eagerly?
>

Respecting mutability: we just have to always, we don't know if a delayed
thing is hashable until we evaluate it. This thing has implications for
existing code (since delayed objects can get anywhere) so it should be
careful not to do anything too unpredictable, and I think d[k] meaning
"whatever is in d[k] in five minutes' time" is unpredictable. One can
always delay: d[k] if it's wanted.

Evaluate calls: because if you don't, there's no way to say "strictly
evaluate x() for its side effects".
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to