我创建了一个名为Game
类。类的对象具有以下属性:
这是类:
class Game:
num_of_objects = 0
def __init__(self, name, genre, year=1990, month=1, day=1):
"""
Class Constructure: Returns a Game object whose parameters are:
name: String
genre: String
data: YYYY-MM-DD
"""
self.name = name
self.genre = genre
self.year = year
self.month = month
self.day = day
self.release_date = self.year + '-' + self.month + '-' + self.day
Game.num_of_objects += 1
def __repr__(self):
return str(self)
def games_by_year():
print [Game.genre for Game in x]
def games_by_genre():
pass
def games_starting_with():
pass
我想创建一个类的方法,即按流派返回游戏列表,返回按年度游戏列表的另一种方法。在这种情况下的游戏只是类对象:
Halo = Game('Halo', 'shooter', '2019', '11', '12')
此外,有没有更好的方式来处理日期?我想是在格式YYYY-MM-DD
您需要在创建他们实际存储游戏的地方。类级列表会工作:
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
提到它。)
现在,您的实际方法需要被classmethods,其接受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)