title: Why python designed as str(None) return 'None' instead of an empty string?
body: <p>In some other languages I knows, the intuitive result of a null to string conversion should be an empty string.
  Why Python is designed to make 'None' be sort of special string?
  And this can lead to extra work when checking a return value from a function</p>
  
  <pre><code>result = foo() # foo will return None if failure 
  if result is not None and len(str(result)) &gt; 0:
      # ... deal with result 
      pass 
  </code></pre>
  
  <p>if str(None) returns empty string, the code could be shorter:</p>
  
  <pre><code>if len(str(result)) &gt; 0:
      # ... deal with result 
      pass 
  </code></pre>
  
  <p>Looks like Python is trying to be verbose, to make log files be more understandable? </p>