On Thu, 21 Mar 2019 17:59:41 +0000 Rhodri James <rho...@kynesim.co.uk> wrote: > > >> And to those who support this PEP, code examples where a dict merge > >> operator will help are most welcome! > > I don't use Python often enough to have much to offer, I'm afraid. The > sort of occasion I would use dict merging is passing modified > environments to subcommands. Something like: > > def process(): > if time_to_do_thing1(): > thing1(base_env + thing1_env_stuff + env_tweaks) > if time_to_do_thing2(): > thing2(base_env + thing2_env_stuff + env_tweaks) > > ...and so on. The current syntax for doing this is a tad verbose: > > def process(): > if time_to_do_thing1(): > env = base_env.copy() > env.update(thing1_env_stuff) > env.update(env_tweaks) > thing1(env) > del env > if time_to_do_thing2(): > env = base_env.copy() > env.update(thing2_env_stuff) > env.update(env_tweaks) > thing2(env) > del env
Ah, you convinced me there is a use case indeed (though `del env` isn't necessary above). I would still prefer something that's not an operator, but I agree there is potential to improve the current state of affairs. Note that, if you're able to live with a third-party dependency, the `toolz` package has what you need (and lots of other things too): https://toolz.readthedocs.io/en/latest/api.html#toolz.dicttoolz.merge Regards Antoine. _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/