[Python-ideas] Another use case for the 'lazy' (aka 'delayed') keyword
markusmeskanen at gmail.com
Tue Feb 28 07:27:32 EST 2017
Well you could just use a dict subclass here with get() that takes
On Feb 28, 2017 14:25, "Michel Desmoulin" <desmoulinmichel at gmail.com> wrote:
> Le 28/02/2017 à 13:19, Chris Angelico a écrit :
> > On Tue, Feb 28, 2017 at 11:04 PM, Michel Desmoulin
> > <desmoulinmichel at gmail.com> wrote:
> >> Instead, I think it's a good example of were 'lazy' could help. You
> >> can't get simpler than:
> >> conf.get('setting_name', lazy load_from_db('setting_name'))
> > Alternatively, you could define 'conf' as a subclass of dict with a
> > __missing__ method:
> > class Config(dict):
> > def __missing__(self, key):
> > self[key] = load_from_db(key)
> > return self[key]
> > conf = Config()
> > Then it becomes even simpler AND less redundant:
> > conf['setting_name']
> Yes but this assumes:
> - I have access to the code instantiating conf;
> - all code using conf are using load_from_db as a default value;
> - load_from_db exists for all code using the conf object
> There is always a solution to all problems, as Python is turing complete.
> You don't need list comprehension, you can use a for loop.
> You don't need upacking you can uses indexing.
> And you don't need lazy, it's just convenient.
> Python-ideas mailing list
> Python-ideas at python.org
> Code of Conduct: http://python.org/psf/codeofconduct/
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-ideas