title: Why doesn't len(None) return 0?
body: <p><code>None</code> in Python is an object.</p>
  
  <pre><code>&gt;&gt;&gt; isinstance(None, object)
  True
  </code></pre>
  
  <p>And as such it can employ functions like __str__()</p>
  
  <pre><code>&gt;&gt;&gt; str(None)
  'None'
  </code></pre>
  
  <p>But why doesn't it do the same for __len__()?</p>
  
  <pre><code>&gt;&gt;&gt; len(None)
  Traceback (most recent call last):
    File "&lt;pyshell#3&gt;", line 1, in &lt;module&gt;
      len(None)
  TypeError: object of type 'NoneType' has no len()
  </code></pre>
  
  <p>It seems like it would be Pythonic the same way that <code>if list</code> is acceptable even if the variable is <code>None</code> and not just an empty list.</p>
  
  <p>Are there cases that would make the use of <code>len(None)</code> more of a problem?</p>