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
On Aug 26, 2017, at 14:15, Yury Selivanov
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.