如何返回所有字符串

时间:2013-02-11 18:34:43

标签: python list return

# -*- 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 ??

2 个答案:

答案 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)。