我正在练习只做一件事的编写函数。我陷入下面的功能。用户调用play_games
来运行整个程序。理想情况下,它只应调用程序类之一中的play_many_games
方法。
但是,如果我也没有添加调用prepare_reports
函数的行,那么报告将永远不会得到处理。如果我坚持只拥有能做一件事的功能,该如何“做报告和游戏”?
我们的底线是我们需要一个main
函数来完成多项功能(例如,一个既可以进行游戏又可以进行通话报告的主函数)吗?
def play_games(number_of_games):
games_engine = prepare_reports(number_of_games)
games_engine.play_many_games(number_of_games)
def prepare_reports(number_of_games):
report_requests = []
if number_of_games <= 100:
report_on_game = GameReport()
report_requests.append(report_on_game)
report_on_many_games = ManyGamesReport()
report_requests.append(report_on_many_games)
return GamesEngine(*report_requests)
答案 0 :(得分:2)
具有一个仅执行驱动程序并调用其他功能的主功能, 是仅执行一项操作的功能。我建议您创建一个。
答案 1 :(得分:1)
您可以尝试执行此操作,因为声明games_engine
并没有多大意义:
def play_games(number_of_games):
prepare_reports(number_of_games).play_many_games(number_of_games)
def prepare_reports(number_of_games):
report_requests = []
if number_of_games <= 100:
report_on_game = GameReport()
report_requests.append(report_on_game)
report_on_many_games = ManyGamesReport()
report_requests.append(report_on_many_games)
return GamesEngine(*report_requests)
但是,从技术上讲,您展示给我们的是仅执行一件事的功能。您会发现,通过声明games_engine = prepare_reports(number_of_games)
,您只是在使代码更易于阅读。