title: Python 3's encode() and decode() methods
body: <p>In Python 3 there are <code>str</code> and <code>bytes</code> types. To convert a <code>bytes</code> type into a <code>str</code> type, one would call the decode() method on an instance and vice versa. I am confused as to why this is, why is it not encode()? As I understand it, internally the actual bytes in memory are being encoded into an encoding (UTF-8 in Python's case).</p>