title: Why Python Built-in Functions not showing on dir()
body: <p>I'm using CPython <code>3.6.2</code>, when executing <code>print(dir())</code> I get:</p>
  
  <pre><code>['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
  </code></pre>
  
  <p>The <code>dir</code> built-in function for example is inside <code>__builtins__</code>, so if only the modules above are shown for <code>print(dir())</code>, I was thinking that to do so python should've done something like:</p>
  
  <pre><code>import __builtins__
  from __builtins__ import *
  </code></pre>
  
  <p>But if that was true I was able to see using <code>print(dir())</code> the <code>__builtins__</code> module + <code>dir</code> and other built functions.</p>
  
  <p>So my question is how can I see the pre-loaded modules(using <code>dir()</code>), but not the built-in functions even though I can access them directly(without using <code>__builtins__.dir</code> for example).</p>