title: Python 'is' operator for two long strings
body: <pre><code>a = 'This is a very long string. This is a very long string. No?'
  b = 'This is a very long string. This is a very long string. No?'
  
  print(id(a), id(b))
  print(a is b)
  </code></pre>
  <p>On my computer, the results are:</p>
  <pre><code>4467772080 4467772080
  True
  </code></pre>
  <p>As I know Python only caches short strings. But why such a long string, it still keeps only one copy? In fact, I changed it to be a very long string (even longer than 1024), <strong>a</strong> and <strong>b</strong> are still pointing to the same string object. Please correct me where I am wrong?</p>