<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">​> <span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">There can be 2 escape characters '\' and '.'</span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:rgb(0,0,0)">That's clever, but then we have to put a slash in front of names in imports, assignments and keyword arguments, but not properties.</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span style="color:rgb(115,115,115);font-style:italic;line-height:18px"><font size="1" face="monospace, monospace">-- Carl Smith</font></span><br></div></div><div><span style="color:rgb(115,115,115);font-style:italic;line-height:18px"><font size="1" face="monospace, monospace"><a href="mailto:carl.input@gmail.com" target="_blank">carl.input@gmail.com</a></font></span></div></div></div></div></div></div>
<br><div class="gmail_quote">On 16 May 2018 at 19:17, Carl Smith <span dir="ltr"><<a href="mailto:carl.input@gmail.com" target="_blank">carl.input@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class=""><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000">> <span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px">Not if you need to make changes in the same tens of thousands of lines file.</span></span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px"><br></span></span></div></span><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px"><font face="verdana, sans-serif">But what has that got to do with the the syntax of the new code? The old code is</font></span></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px"><font face="verdana, sans-serif">what it is.</font></span></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px"><font face="verdana, sans-serif"><br></font></span></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px"><font face="verdana, sans-serif">I did think after I replied that `True` wasn't actually reserved until more recently, but</font></span></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px"><font face="verdana, sans-serif">the point still stands: You would be able to reference the name *as defined* in an</font></span></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px"><font face="verdana, sans-serif">external library, and yeah, it could refer to anything, but that's kinda the point. We</font></span></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><font face="verdana, sans-serif"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px">have to assume the library does something </span></span><span style="font-size:12.8px">sane with the name. We can't preempt</span></font></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-size:12.8px"><font face="verdana, sans-serif">an employee sabotaging `True`.</font></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-size:12.8px"><font face="verdana, sans-serif"><br></font></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-size:12.8px"><font face="verdana, sans-serif">As a more realistic example (if not for Python), say `until` became a keyword, then</font></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-size:12.8px"><font face="verdana, sans-serif">you </font></span><span style="font-family:verdana,sans-serif;font-size:12.8px">could end </span><span style="font-family:verdana,sans-serif;font-size:12.8px">up with lines </span><span style="font-family:verdana,sans-serif;font-size:12.8px">like this:</span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><span style="font-size:12.8px;font-family:arial,sans-serif"><br></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-size:12.8px"><font face="monospace, monospace">    from oldlib import until as upto</font></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-size:12.8px"><font face="monospace, monospace">    dance(until="am")</font></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-size:12.8px"><font face="monospace, monospace"><br></font></span></div><div class="gmail_default" style="font-size:small;color:rgb(0,0,0)"><span style="font-size:12.8px"><font face="monospace, monospace">    event.until = time(9, 30)</font></span></div><span class=""><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000">> <span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">The overall issue is that python has no way of knowing if the keyword is being used for legitimate</span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">> backwards-compatibility purposes or someone intentionally overrode after it was made a keyword</span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><span style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">> because they somehow thought it was a good idea.</span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px"><br></span></span></div></span><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px">I only said that Python does not know *until runtime*, and I was wrong when I described that as a</span></span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px">problem. A </span></span><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px"><span style="color:rgb(0,0,0);font-size:12.8px">runtime NameError actually makes </span></span><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px"><span style="color:rgb(0,0,0);font-size:12.8px">perfect sense. </span></span><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px"><span style="color:rgb(0,0,0);font-size:12.8px">Assigning to </span></span><span style="font-size:12.8px;font-family:arial,sans-serif">`self.until` or assigning</span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><span style="font-size:12.8px;font-family:arial,sans-serif">to `until` inside a subclass should not be a syntax </span><span style="font-family:arial,sans-serif;font-size:12.8px">error. A NameError would be correct.</span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px"><br></span></span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px">It worth mentioning that the cost of checking only applies to cases where the name in question is also</span></span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><span class="m_4940667627113339466gmail-im" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps: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);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(0,0,0);font-size:12.8px">keyword, so almost </span></span><span style="font-size:12.8px;font-family:arial,sans-serif">never.</span></div><span class="HOEnZb"><font color="#888888"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small;color:#000000"><br></div></font></span></div><div class="gmail_extra"><span class="HOEnZb"><font color="#888888"><br clear="all"><div><div class="m_4940667627113339466gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span style="color:rgb(115,115,115);font-style:italic;line-height:18px"><font size="1" face="monospace, monospace">-- Carl Smith</font></span><br></div></div><div><span style="color:rgb(115,115,115);font-style:italic;line-height:18px"><font size="1" face="monospace, monospace"><a href="mailto:carl.input@gmail.com" target="_blank">carl.input@gmail.com</a></font></span></div></div></div></div></div></div></font></span><div><div class="h5">
<br><div class="gmail_quote">On 16 May 2018 at 16:40, Niki Spahiev <span dir="ltr"><<a href="mailto:niki.spahiev@gmail.com" target="_blank">niki.spahiev@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On 16.05.2018 16:05, Andrés Delfino wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
IMHO, it would be much easier to learn and understand if keywords can only<br>
be used by escaping them, instead of depending where they occur.<br>
</blockquote>
<br></span>
There can be 2 escape characters '\' and '.'<span class="m_4940667627113339466HOEnZb"><font color="#888888"><br>
<br>
Niki</font></span><div class="m_4940667627113339466HOEnZb"><div class="m_4940667627113339466h5"><br>
<br>
<br>
______________________________<wbr>_________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofco<wbr>nduct/</a><br>
</div></div></blockquote></div><br></div></div></div>
</blockquote></div><br></div>