# -*- coding: utf-8 -*-
import os
import fbconsole
here = os.path.dirname(os.path.abspath(__file__))
def fbfeed():
fbconsole.APP_ID = '588914247790498'
fbconsole.AUTH_SCOPE = ['publish_stream', 'publish_checkins', 'read_stream', 'offline_access']
fbconsole.authenticate()
newsfeed = fbconsole.get('/me/home')
newsfeedData = newsfeed["data"]
for status in newsfeedData:
fromn = [status['from']['name']]
name = [status.get('name', None)]
description = [status.get('description', None)]
if description == name is None:
return fromn
elif description is None:
return fromn.extend(name)
elif name is None:
return fromn.extend(description)
else:
return fromn + name + description
我的代码只返回一个字符串,但是当我使用打印而不是返回时 - 它会打印所有结果。如何返回相同的结果,如 print ??
答案 0 :(得分:2)
当你使用return时它退出函数并且不会像打印那样继续循环遍历循环。试试产量。
答案 1 :(得分:1)
问题是当你的循环命中第一个return
语句时,函数将退出并且循环不会继续。使用print
将允许循环继续。
两个选项是在开始循环之前创建一个列表,将状态添加到循环中的列表中,然后在循环之后返回列表。
使用yield
关键字而不是return
将允许其他函数循环结果。有关yield
关键字的更多详细信息,请访问:What does the "yield" keyword do in Python?(加上实际文档:http://docs.python.org/2.7/reference/expressions.html?highlight=yield#yield-expressions)。