On Tue, Sep 5, 2017 at 10:43 AM, Pavol Lisy firstname.lastname@example.org wrote:
On 9/4/17, Koos Zevenhoven email@example.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.