Python: Why does my function not display what's being returned in the interpreter?
<h1>In the Python interactive interpreter:</h1>

<p>I am importing a module that contains a class. These are the methods of that class (some of them):</p>

<pre><code>    def do_api_call(self, params):
        return self.__apicall(params)

    def __apicall(self, params):
        return urllib2.urlopen(self.endpoint, params).read()
</code></pre>

<p>When I import the class and use the method do_api_call(), it doesn't output anything when it finishes running.</p>

<pre><code>    def do_api_call(self, params):
        print(self.__apicall(params))

    def __apicall(self, params):
        return urllib2.urlopen(self.endpoint, params).read()
</code></pre>

<p>I create an instance of the class and run the method:</p>

<pre><code>myapi = MyAPIClass()
myapi.do_api_call(params={'param': 'value'})
</code></pre>

<p>When I do the second version (note the print function) however, it outputs the HTML of the page that is being called.</p>

<p><strong>Why doesn't the first version output anything?</strong> It's working (ie, it's getting the page and not raising any errors).</p>
