title: Why does binascii.a2b_hex() return a string?
body: <p>This is the description of the function from the <a href="http://docs.python.org/2/library/binascii.html#binascii.a2b_hex" rel="nofollow noreferrer">standard library documentation</a>.</p>
  <blockquote>
  <p>binascii.a2b_hex(hexstr)</p>
  <p>Return the binary data represented by the hexadecimal string hexstr. This function is the inverse of b2a_hex(). hexstr must contain an even number of hexadecimal digits (which can be upper or lower case), otherwise a TypeError is raised.</p>
  </blockquote>
  <p>However, the following code sample prints out <code>Hello World!</code></p>
  <pre><code>import binascii
  print binascii.a2b_hex('48656c6c6f20576f726c6421')
  </code></pre>
  <p>Why does <code>print</code> interpret the binary data as a string? What exactly is going on?</p>