I'm convinced by the new section explaining why a single value is better
than a namespace.  Nonetheless, it would feel more "Pythonic" to me to
create a property `ContextVariable.val` whose getter and setter was
`.lookup()` and `.set()` (or maybe `._lookup()` and `._set()`).

Lookup might require a more complex call signature in rare cases, but the
large majority of the time it would simply be `var.val`, and that should be
the preferred API IMO.  That provides a nice parallel between `var.name`
and `var.val` also.

On Sat, Aug 26, 2017 at 11:22 AM, Barry Warsaw <ba...@python.org> wrote:

> On Aug 26, 2017, at 14:15, Yury Selivanov <yselivanov...@gmail.com> wrote:
> >
> > Elvis just added it:
> > https://www.python.org/dev/peps/pep-0550/#replication-of-
> threading-local-interface
>
> Thanks, that’s exactly what I was looking for.  Great summary of the issue.
> >
> >> That said, if we have to use method lookup, then I agree that `.get()`
> is a better choice than `.lookup()`.  But in that case, would it be
> possible to add an optional `default=None` argument so that you can specify
> a marker object for a missing value?  I worry that None might be a valid
> value in some cases, but that currently can’t be distinguished from
> “missing”.
> >
> > Nathaniel has a use case where he needs to know if the value is in the
> > topmost LC or not.
> >
> > One way to address that need is to have the following signature for
> lookup():
> >
> >   lookup(*, default=None, traverse=True)
> >
> > IMO "lookup" is a slightly better name in this particular context.
>
> Given that signature (which +1), I agree.  You could add keywords for
> debugging lookup fairly easily too.
>
> Cheers,
> -Barry
>
>
> _______________________________________________
> 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/
> mertz%40gnosis.cx
>
>


-- 
Keeping medicines from the bloodstreams of the sick; food
from the bellies of the hungry; books from the hands of the
uneducated; technology from the underdeveloped; and putting
advocates of freedom in prisons.  Intellectual property is
to the 21st century what the slave trade was to the 16th.
_______________________________________________
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