Python - 从函数返回值

时间:2016-02-13 16:32:18

标签: python

我有这个配置文件:

[test]
one: value1
two: value2

此函数返回项目,配置文件的section test中的值,但是当我调用该函数时,只返回第一项(one,value1)。

def getItemsAvailable(section):
    for (item, value) in config.items(section):
        return (item, value)

我用这个函数调用getItemsAvailable():

def test():
    item, value = getItemsAvailable('test')
    print (item, value)

我想我应该在getItemsAvailable()函数上创建一个列表,并返回列表以读取test()函数的值,是吗?

有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

使用列表理解。变化

for (item, value) in config.items(section):
    # the function returns at the end of the 1st iteration
    # hence you get only 1 tuple. 
    # You may also consider using a generator & 'yield'ing the tuples
    return (item, value) 

return [(item, value) for item, value in config.items(section)]

关于你的test()功能:

def test():
    aList = getItemsAvailable('test')
    print (aList)

答案 1 :(得分:1)

使用生成器功能:

def getItemsAvailable(section):
    for (item, value) in config.items(section):
        yield (item, value)

得到这样的项目:

def test():
    for item, value in getItemsAvailable('test'):
        print (item, value)