[Python-ideas] PEP draft: context variables

Koos Zevenhoven k7hoven at gmail.com
Tue Sep 5 11:48:49 EDT 2017


On Tue, Sep 5, 2017 at 10:43 AM, Pavol Lisy <pavol.lisy at gmail.com> wrote:

> On 9/4/17, Koos Zevenhoven <k7hoven at gmail.com> wrote:
> ​[...]​
>
> >     with cvar.assign(new_value):
> >         assert cvar.value is new_value
> >         # Any code here, or down the call chain from here, sees:
> >         #     cvar.value is new_value
> >         # unless another value has been assigned in a
> >         # nested context
> >         assert cvar.value is new_value
> >     # the assignment of ``cvar`` to ``new_value`` is no longer visible
> >     assert cvar.value == "the default value"
>
> I feel that of "is" and "==" in assert statements in this PEP has to
> be used (or described) more precisely.
>

​​
​The use is quite precise as it is now. I can't use `is` for the string
values, because the result would depend on whether Python gives you the
same str instance as before, or a new one with the same content.​ Maybe
I'll get rid of literal string values in the description, since it seems to
only cause distraction.



>
> What if new_value above is 123456789?
>

​Any value is fine.​



>
> maybe using something like could be better? ->
>
>    def equals(a, b):
>       return a is b or a == b
>
> Doesn't PEP need to think about something like "context level overflow" ?
>
> Or members like: cvar.level ?
>

I don't see any need for this at this point, or possibly ever.​


​––Koos​


-- 
+ Koos Zevenhoven + http://twitter.com/k7hoven +
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170905/e515a820/attachment.html>


More information about the Python-ideas mailing list