Предположим, что у меня есть класс с именем Person и класс, который наследует это, называется Group. У человека есть атрибут с именем name и атрибут с именем age. Когда я создаю Группу, я хочу передать объектам n человек, и их новое имя - это комбинация имен, а их новый век - их совокупный возраст.
также, черт возьми, будет отслеживать, какмного людей, и сколько групп существует по отдельности (просто наследование имеет какой-то смысл в этом примере.)
class Person:
count = 0
def __init__(self, name, age):
self.name = name
self.age = age
self.id = make_person() # count is also the person's id in this example
def __str__(self):
return f'Name: {self.name} Age: {self.age}'
@classmethod
def make_person(cls):
cls.count += 1
return cls.count
class Group(Person):
def __init__(self, *people):
#not sure how to do this, Below Does Not Work, something like
new_name = self.make_group(people)
new_age = self.new_age(people)
self.name = new_name
self.age = new_age
super().__init__(self.new_name, self.new_age)
def make_group(self, *people):
return (' & ').join([person.name for person in People])
def new_age(self, *people):
return sum([person.age for person in people])
тогда вы думаете, что я мог бы написать
anne = Person('Anne', 20)
bob = Person('Bob', 20)
carl = person('Carl', 25)
couple = Group(anne, bob)
threesome = Group(anne, bob, carl)
print(couple)
print(threesome)
, но это не такработай. По какой-то причине групповой класс не получает людей, которых я пропускаю, или я неправильно его определяю ... есть идеи?