[Python-ideas] Another use case for the 'lazy' (aka 'delayed') keyword
Michel Desmoulin
desmoulinmichel at gmail.com
Tue Feb 28 10:28:34 EST 2017
Only if "None" is not a proper value from .get().
And this doest solve the problems with more general callbacks that are
not trying to get a value (cf Django lazy_gettext).
Besides, "??" does not exist yet for Python, so let's counter the
argument for lazy with the potential benefits of something we don't have
ATM.
A proposal is already hard enough to defenD on Python-ideas :)
Le 28/02/2017 à 16:21, Mark E. Haase a écrit :
> This could be solved with a null-coalescing operator, e.g. PEP-505.
>
> >>> val = conf.get('setting_name') ?? load_from_db('setting_name')
>
> The right side isn't evaluated unless the left side is None. It's
> similar to this:
>
> >>> val = conf.get('setting_name') or load_from_db('setting_name')
>
> Except that using "or" would result in any false-y value (0, "", [],
> etc.) being overridden by the result of `load_from_db(...)`.
>
> I'm not strongly opposed to "lazy", but I think null-coalescing is
> easier to reason about.
>
More information about the Python-ideas
mailing list