[Python-Dev] PEP 550 v4

Elvis Pranskevichus elprans at gmail.com
Thu Sep 7 10:01:12 EDT 2017


On Thursday, September 7, 2017 3:54:15 AM EDT Greg Ewing wrote:
> This problem would also not arise if context vars
> simply had names instead of being magic key objects:
> 
>     def foo():
>        contextvars.set("mymodule.myvar", 1)
> 
> That's another thing I think would be an improvement,
> but it's orthogonal to what we're talking about here
> and would be best discussed separately.

On the contrary, using simple names (PEP 550 V1 was actually doing that) 
is a regression.  It opens up namespace clashing issues.  Imagine you 
have a variable named "foo", and then some library you import also 
decides to use the name "foo", what then?  That's one of the reasons why 
we do `local = threading.local()` instead of 
`threading.set_local("foo", 1)`.

                              Elvis


More information about the Python-Dev mailing list