Вам нужно хранить игры где-то при их создании.Список на уровне класса будет работать:
class Game:
num_of_objects = 0
games = []
def __init__(self, name, genre, year=1990, month=1, day=1):
...
self.games.append(self)
Вероятно, вы можете удалить счетчик num_of_objects
, так как его можно найти в len(self.games)
.(И обратите внимание, поскольку вы изменяете, а не переназначаете объект games
, вы можете обращаться к нему напрямую через self
.)
Теперь ваши фактические методы должны быть методами класса, которые принимают cls
в качестве первого параметра:
@classmethod
def games_by_year(cls):
return sorted(cls.games, key=lambda g: g.year)
@classmethod
def games_by_genre(cls):
return sorted(cls.games, key=lambda g: g.genre)