<div dir="ltr"><div>That's a good fine point that the PEP could call out, but just adding "dynamic" in front of "snapshot" everywhere doesn't tell me any of that.</div><div><br></div><div>Given that the code calling locals() must of necessity live in the same function body (except for the special case of trace functions), I don't think that what you describe here is too worrisome a scenario.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, May 25, 2019 at 2:09 PM Nathaniel Smith <<a href="mailto:njs@pobox.com">njs@pobox.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, May 25, 2019, 07:38 Guido van Rossum <<a href="mailto:guido@python.org" target="_blank">guido@python.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>This looks great.</div><div><br></div><div>I only have two nits with the text.<br></div><div><br></div><div>First, why is the snapshot called a "dynamic snapshot"? What exactly is dynamic about it?</div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">It's dynamic in that it can spontaneously change when certain other events happen. For example, imagine this code runs at function scope:</div><div dir="auto"><br></div><div dir="auto"># take a snapshot</div><div dir="auto">a = locals()</div><div dir="auto"><br></div><div dir="auto"># it's a snapshot, so it doesn't include the new variable</div><div dir="auto">assert "a" not in a</div><div dir="auto"><br></div><div dir="auto"># take another snapshot</div><div dir="auto">b = locals()</div><div dir="auto"><br></div><div dir="auto"># now our first "snapshot" has changed</div><div dir="auto">assert "a" in a</div><div dir="auto"><br></div><div dir="auto">Overall I'm happy with the PEP, but I'm still a bit uneasy about whether we've gotten the details of this "dynamicity" exactly right, esp. since the PEP promotes them from implementation detail to language features. There are a lot of complicated tradeoffs so I'm working on a longer response that tries to lay out all the options and hopefully convince myself (and everyone else).</div><div dir="auto"><br></div><div dir="auto">-n</div></div>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div><div><i style="font-family:Arial,Helvetica,sans-serif;font-size:small;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);color:rgb(136,136,136)"><span>Pronouns</span>: he/him/his </i><a href="http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/" style="color:rgb(17,85,204);font-family:Arial,Helvetica,sans-serif;font-size:small;font-style:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)" target="_blank"><i>(why is my <span>pronoun</span> here?)</i></a></div></div></div>