By default, threading.local raises an AttributeError (unless you subclass
it.)  Similar to that and to NameErrors, I think it's a good idea for
ContextVars to raise a LookupError if a variable was not explicitly set.

Yury


On Tue, Jan 9, 2018 at 7:15 PM Victor Stinner <victor.stin...@gmail.com>
wrote:

> 2018-01-09 12:41 GMT+01:00 Yury Selivanov <yselivanov...@gmail.com>:
> > But I'd be -1 on making all ContextVars have a None default
> > (effectively have a "ContextVar.get(default=None)" signature. This
> > would be a very loose semantics in my opinion.
>
> Why do you think that it's a loose semantics? For me
> ContextVar/Context are similar to Python namespaces and thread local
> storage.
>
> To "declare" a variable in a Python namespace, you have to set it:
> "global x" doesn't create a variable, only "x = None".
>
> It's not possible to define a thread local variable without specifying
> a "default" value neither.
>
> Victor
>
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to