[Python-Dev] PEP 567 pre v3 (original) (raw)

Yury Selivanov yselivanov.ml at gmail.com
Tue Jan 9 10:41:28 EST 2018


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.stinner at gmail.com> wrote:

2018-01-09 12:41 GMT+01:00 Yury Selivanov <yselivanov.ml at 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20180109/10d0fd3b/attachment.html>



More information about the Python-Dev mailing list