Почему эта функция возвращает только первый элемент в списке? - PullRequest
0 голосов
/ 26 октября 2019

Класс:

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().

Я вернусь только к первому члену списка.

Почему это так?

1 Ответ

1 голос
/ 26 октября 2019

Измените класс на

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...