# 创建一个用于存储游戏信息的实例
self.stats = GameStats(self)
Before writing this statement, the program can run successfully, but an error occurs after writing:
Traceback (most recent call last):
File "D:/python_train/alien_invasion/alien_invasion.py", line 265, in <module>
ai = AlienInvasion()
File "D:/python_train/alien_invasion/alien_invasion.py", line 34, in __init__
self.stats = GameStats(self)
TypeError: __init__() takes 1 positional argument but 2 were given
Literally, the initialization condition accepts only one piece of information, but is given two pieces of information
Return to the file where the method GameStats is located and find:
def __init__(self):
# 初始化统计信息
self.settings = ai_game.settings
self.reset_stats()
change into:
def __init__(self,ai_game):
# 初始化统计信息
self.settings = ai_game.settings
self.reset_stats()
It runs successfully and the effect meets expectations.