2015-12-24 4 views
0
class Family: 
    def __init__(self, number_of_family_members): 
     self.members = self.create_members(number_of_family_members) 

    def create_members(self, number): 
     family_people = [] 
     for i in range(number): 
      family_people.append(Human()) 
      #family_people.append(self.Human()) 
     return family_people 

class Human: 
    def __init__(self): 
     self.exists = True 

Я планирую иметь объекты семейства, которые будут содержать человеческие объекты. Я не уверен, что я (1) правильно назвал метод «create_members» (2) не уверен, как инициировать людей.Python, создающий различные объекты в текущем классе

* В настоящее время я изучаю объекты, поэтому не был уверен, что это было правильно. Благодаря!

+5

0 Выясните, что вы собираетесь сделать? и что не так с вашим кодом? – Kasramvd

+0

Из двух строк в 'create_members'' family_people.append (Human()) это правильный способ сделать это. – shuttle87

+1

Прокомментированная строка не будет работать, так как у вас нет метода Human() в классе Family. – soungalo

ответ

1

В чем проблема? Ваш код в порядке. Вы можете проверить его на терминале, чтобы узнать, что происходит. Вы также можете упростить код инициализации.

class Family: 
    def __init__(self, number_of_family_members): 
     self.members = [Human()] * number_of_family_members 

class Human: 
    def __init__(self): 
     self.exists = True 

>>> f = Family(5) 
>>> f.members 
[<__main__.Human instance at 0x1102ca560>, <__main__.Human instance at 0x1102ca560>, <__main__.Human instance at 0x1102ca560>, <__main__.Human instance at 0x1102ca560>, <__main__.Human instance at 0x1102ca560>] 
Смежные вопросы