Python:为什么我的函数不显示解释器中返回的内容?

时间:2010-01-13 03:42:10

标签: python

在Python交互式解释器中:

我正在导入包含类的模块。这些是该类的方法(其中一些):

    def do_api_call(self, params):
        return self.__apicall(params)

    def __apicall(self, params):
        return urllib2.urlopen(self.endpoint, params).read()

当我导入类并使用方法do_api_call()时,它在完成运行时不会输出任何内容。

    def do_api_call(self, params):
        print(self.__apicall(params))

    def __apicall(self, params):
        return urllib2.urlopen(self.endpoint, params).read()

我创建了一个类的实例并运行方法:

myapi = MyAPIClass()
myapi.do_api_call(params={'param': 'value'})

当我执行第二个版本(请注意打印功能)时,它会输出正在调用的页面的HTML。

为什么第一个版本没有输出任何东西?它正在工作(即它正在获取页面而不会引发任何错误)。

1 个答案:

答案 0 :(得分:1)

您的第一个版本仅返回您希望作为输出看到的值。第二个版本实际上打印了这个值。

如果我是你,我会考虑将第一个版本的调用的返回值存储到变量中并打印该变量。这应该可以解决你的问题