<div dir="ltr"><div>Easily solved with the totally evil ninja mode pattern of module initialization. It has yet to catch on.</div><div><br></div><div>def ninja():</div><div>    global exported</div><div>    import os</div><div>    def exported():</div><div>        # do something</div><div>ninja()</div><div>del ninja</div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Jan 9, 2017 at 1:13 PM Sven R. Kunze <<a href="mailto:srkunze@mail.de">srkunze@mail.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
    <p class="gmail_msg">Interesting to see that others have the same problem.</p>
    <p class="gmail_msg">We also had this kind of "over-protective" behavior. As far as I
      know, our devs stopped doing it as it feels cumbersome.</p>
    <p class="gmail_msg"><br class="gmail_msg">
    </p>
    <p class="gmail_msg">Another argument for this is: when using PyCharm, this IDE will
      suggest imports from those modules which aren't the original ones.
      So, you might import from a third-party module. Over time,
      however, people learn to pick the "right" module to import from.</p>
    <p class="gmail_msg">Cheers,<br class="gmail_msg">
      Sven<br class="gmail_msg">
    </p></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
    <p class="gmail_msg"><br class="gmail_msg">
    </p>
    <div class="m_1528601625394667386moz-cite-prefix gmail_msg">On 09.01.2017 12:42, Steve Holden
      wrote:<br class="gmail_msg">
    </div>
    </div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><blockquote type="cite" class="gmail_msg">
      <div dir="ltr" class="gmail_msg">One of my developers recently submitted a pull
        request incuding a number of lines like
        <div class="gmail_msg"><br class="gmail_msg">
        </div>
        <div class="gmail_msg">import os as _os</div>
        <div class="gmail_msg"><br class="gmail_msg">
        </div>
        <div class="gmail_msg">When I asked him why he suggested a) this would improve
          encapsulation, and b) the practice was supported in the
          stdlib. Further investigation reveals that some modules (e.g.
          argparse, crypt, difflib, random) do use this technique, but
          it is far from universal.</div>
        <div class="gmail_msg"><br class="gmail_msg">
        </div>
        <div class="gmail_msg">So I thought it would be useful to get input from current
          devs about the value of this practice, since to me it seems
          somewhat anti-pythonic. What advantages does it confer?</div>
        <div class="gmail_msg"><br class="gmail_msg">
        </div>
        <div class="gmail_msg">regards<br clear="all" class="gmail_msg">
          <div class="gmail_msg">
            <div class="m_1528601625394667386gmail_signature gmail_msg" data-smartmail="gmail_signature">
              <div dir="ltr" class="gmail_msg">Steve Holden<br class="gmail_msg">
              </div>
            </div>
          </div>
        </div>
      </div>
      <br class="gmail_msg">
      <fieldset class="m_1528601625394667386mimeAttachmentHeader gmail_msg"></fieldset>
      <br class="gmail_msg">
      </blockquote></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><blockquote type="cite" class="gmail_msg"><pre class="gmail_msg">_______________________________________________
Python-Dev mailing list
<a class="m_1528601625394667386moz-txt-link-abbreviated gmail_msg" href="mailto:Python-Dev@python.org" target="_blank">Python-Dev@python.org</a>
<a class="m_1528601625394667386moz-txt-link-freetext gmail_msg" href="https://mail.python.org/mailman/listinfo/python-dev" target="_blank">https://mail.python.org/mailman/listinfo/python-dev</a></pre></blockquote></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><blockquote type="cite" class="gmail_msg"><pre class="gmail_msg">
Unsubscribe: <a class="m_1528601625394667386moz-txt-link-freetext gmail_msg" href="https://mail.python.org/mailman/options/python-dev/srkunze%40mail.de" target="_blank">https://mail.python.org/mailman/options/python-dev/srkunze%40mail.de</a>
</pre>
    </blockquote>
    <br class="gmail_msg">
  </div>

_______________________________________________<br class="gmail_msg">
Python-Dev mailing list<br class="gmail_msg">
<a href="mailto:Python-Dev@python.org" class="gmail_msg" target="_blank">Python-Dev@python.org</a><br class="gmail_msg">
<a href="https://mail.python.org/mailman/listinfo/python-dev" rel="noreferrer" class="gmail_msg" target="_blank">https://mail.python.org/mailman/listinfo/python-dev</a><br class="gmail_msg">
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/dholth%40gmail.com" rel="noreferrer" class="gmail_msg" target="_blank">https://mail.python.org/mailman/options/python-dev/dholth%40gmail.com</a><br class="gmail_msg">
</blockquote></div>