Python: Почему моя функция не отображает то, что возвращается в интерпретаторе? - PullRequest
1 голос
/ 13 января 2010

В 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 Ответ

1 голос
/ 13 января 2010

Ваша первая версия возвращает только значение, которое вы хотели бы видеть в качестве вывода. Вторая версия фактически печатает это значение.

На вашем месте я бы рассмотрел сохранение возвращаемого значения вызова первой версии в переменной и печать этой переменной. Это должно решить вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...