[Python-Dev] PEP 550 v4 (original) (raw)

Yury Selivanov yselivanov.ml at gmail.com
Sat Aug 26 13:23:00 EDT 2017


On Sat, Aug 26, 2017 at 1:23 PM, Ethan Furman <ethan at stoneleaf.us> wrote:

On 08/26/2017 09:25 AM, Yury Selivanov wrote:

On Fri, Aug 25, 2017 at 10:19 PM, Ethan Furman wrote:

A context variable is an object representing a value in the execution context. A new context variable is created by calling the newcontextvar() function. A context variable object has two methods:

* lookup(): returns the value of the variable in the current execution context; * set(): sets the value of the variable in the current execution context.

Why "lookup" and not "get" ? Many APIs use "get" and it's functionality is well understood. ContextVar.set(value) method writes the value to the topmost LC. ContextVar.lookup() method traverses the stack until it finds the LC that has a value. "get()" does not reflect this subtle semantics difference. A good point; however, ChainMap, which behaves similarly as far as lookup goes, uses "get" and does not have a "lookup" method. I think we lose more than we gain by changing that method name.

ChainMap is constrained to be a Mapping-like object, but I get your point. Let's see what others say about the "lookup()". It is kind of an experiment to try a name and see if it fits.

Yury



More information about the Python-Dev mailing list