Python返回值只打印对象中的一个值而不是所有值

时间:2018-05-18 01:48:53

标签: python flask

我有一个带有两个A和B类的Python文件,我从类A继承temp到B.在我的类A函数temp中,我从一个XML文件获取id值,该文件的值如下所示: / p>

[1,2,3,4,5]

具有临时功能的我的A级

class A:
        def temp(self):
        id = []
        for child in root:
            temp_id=child.get('id')
            id.append(temp_id)
        return id

我正在获取B类中的函数值

class B (A):
           fun=A
           value = fun.temp()
           for x in value:
             return x

在打印返回值而不是打印所有值时,我只得到第一个值

[1,1,1,1,1] 

有人可以告诉我如何解决这个问题,谢谢。

1 个答案:

答案 0 :(得分:2)

标准函数只能返回单个值。之后,继续执行该函数的调用。所以,你试图循​​环遍历所有的值,但是在看到第一个值时返回,然后函数退出并且循环被破坏。

在您的情况下,您可以简单地return fun.temp()。或者,如果要处理每个值,然后返回新列表,则可以运行类似:

new_list = []
value = fun.temp()
for x in value:
   # do something with x here
   new_list.append(x)
return new_list

此外,您似乎对继承如何工作有点困惑。如果你想看看,DigitalOcean有一个great article on it