如何返回的所有字符串
# -*- 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?如何返回的所有字符串
当你使用return时,它会退出函数,并且不会像循环一样循环遍历循环。尝试收益。
好吧,它的工作原理,我该如何定义这个结果给变量?我想将它发送到mako模板。 – 2013-02-11 19:07:21
当你使用yield语句时,它将函数转换为一个生成器,它可以像列表一样使用。将它转换为列表最简单的方法就是说x = list(fbfeed()) – Hoopdady 2013-02-11 19:31:20
它显示我输出的结果如同'[u'\ u0406 \ u0440 \ u0438 \ u043d \ u0430 \ u0421 \ u0435 \ u0445',无,u'Change Ur模板到R3D在这里 - > http://bit.ly/14NYfaJ?477259&cid=theme']'如何解决它? – 2013-02-11 22:51:36
问题是,当你的循环碰到第一个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)。
改变你返回的收益,那么你可以''为f在饲料():'' – sotapme 2013-02-11 18:40:15