On Thu, Sep 17, 2020 at 8:33 PM Alexis Masson <a.masson...@ntymail.com> wrote:
> On Fri, Sep 18, 2020 at 2:13 AM Alexis Masson <a.masson...@ntymail.com> > <a.masson...@ntymail.com> wrote: > > This, in addition with locals().update(_), feels much better to me. > Furthermore, it would allow other string-like classes, such as bytes or > bytearray, to use that feature. > > > But locals().update() isn't a supported operation, except in the > situation where locals() is globals(). So what you're suggesting would > work fine in the REPL but not in any production usage. > > ChrisA > > That surprises me. I put a quick test to check : > > def f() : > print(locals()) > locals().update(dict(a=3)) > print(locals()) > > f() > > prints : > > ================= RESTART: ****/test.py ================ > {} > {'a': 3} > >>> > > So maybe the specs don't force it, but under the current implementation, > it seems to work. > No it doesn't, try `print(a)`. > I agree that it's bad practice anyway; a correct solution to the original > question might surely involve something akin to :for key, value in > parsed.items() : > > for key, value in parsed.items() : > > exec(f"{key} = {value}") > > This has the same problem for the same underlying reasons, it won't work in a function either.
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/MYQCQAJSMKZYCO5V6QHSEHEXUQWBW3T3/ Code of Conduct: http://python.org/psf/codeofconduct/