【问题标题】:Why is this function only returning the first item in the list?为什么这个函数只返回列表中的第一项?
【发布时间】:2019-10-26 15:05:09
【问题描述】:

类:

Person.py

class Person:

    def __init__(self, first, middle, last):
        self.firstName = first
        self.middle = middle
        self.lastName = last
        self.siblings = []

    def showSiblings(self):
        for x in self.siblings:
            return x

    def addSiblings(self, sibling):
        self.siblings.append(sibling)

当我将几个兄弟姐妹添加到 Person 的新实例时:

from classTest.Person import Person

newPerson = Person("Fred", "Baker", "Smith")

newPerson.addSiblings("Sibling1")
newPerson.addSiblings("Sibling2")
newPerson.addSiblings("Sibling3")
newPerson.addSiblings("Sibling4")
newPerson.addSiblings("Sibling5")

然后调用showSiblings()方法。

我只取回列表的第一个成员。

这是为什么?

【问题讨论】:

  • 好吧,show兄弟姐妹基本上就是这样,你进入for循环并返回

标签: python list class


【解决方案1】:

把类改成

Person.py

class Person:

    def __init__(self, first, middle, last):
        self.firstName = first
        self.middle = middle
        self.lastName = last
        self.siblings = []

    def showSiblings(self):
        return self.siblings

    def addSiblings(self, sibling):
        self.siblings.append(sibling)

和打印:

for result in newPerson.showSiblings():
   print(result)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2022-11-30
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    相关资源
    最近更新 更多