title: What is this in Python? (type related)
body: <p>I'm relatively new in Python, and I was doing classes.</p>
  
  <p>I was doing this:</p>
  
  <pre><code>&gt;&gt;&gt; x = int()
  &gt;&gt;&gt; x
  0
  &gt;&gt;&gt; type(x)
  &lt;type 'int'&gt;
  &gt;&gt;&gt; x = str()
  &gt;&gt;&gt; type(x)
  &lt;type 'str'&gt;
  &gt;&gt;&gt; x = tuple
  &gt;&gt;&gt; type(x)
  &lt;type 'type'&gt;
  &gt;&gt;&gt; x = ()
  &gt;&gt;&gt; type(x)
  &lt;type 'tuple'&gt;
  &gt;&gt;&gt; x = blak
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  NameError: name 'blak' is not defined
  </code></pre>
  
  <p>Why does assigning <code>tuple</code> to a newly created variable gave it a type of <code>type</code>, as opposed to giving it a tuple type? (I'm okay with it not giving the tuple type, since <code>x = ()</code> does it.)
  Any other word and it (obviously) gives an error.</p>
  
  <p>What did I stumble across here? I can't find anything in the documentation because the search engines aren't really helpful.</p>
  
  <p>Also, now I see if 
  <code>x = str</code>
  or 
  <code>x = int</code></p>
  
  <p>also result in </p>
  
  <pre><code>type(x) = int
  </code></pre>
  
  <p>And likewise</p>