来自不同方法的python字典导致;缺少位置参数“;错误
我正在用python制作一个cli“尖峰时刻”游戏。游戏板来自用户的输入,汽车由字母表示。我通过将每一个独特的字母添加到字典中来解析电路板以查找每一辆汽车。我试图使用汽车字典来创建汽车(代码前面的汽车类实例),并计算大小和方向 使用board类中的代码,我得到了以下错误:TypeError:create_all_cars_in_this_board()缺少1个必需的位置参数:“my_cars_dict” 看起来“查找所有车辆”在“此电路板”中的方法正在工作,但“创建所有车辆”在“此电路板”中的方法无法访问它来自不同方法的python字典导致;缺少位置参数“;错误,python,function,dictionary,methods,Python,Function,Dictionary,Methods,我正在用python制作一个cli“尖峰时刻”游戏。游戏板来自用户的输入,汽车由字母表示。我通过将每一个独特的字母添加到字典中来解析电路板以查找每一辆汽车。我试图使用汽车字典来创建汽车(代码前面的汽车类实例),并计算大小和方向 使用board类中的代码,我得到了以下错误:TypeError:create_all_cars_in_this_board()缺少1个必需的位置参数:“my_cars_dict” 看起来“查找所有车辆”在“此电路板”中的方法正在工作,但“创建所有车辆”在“此电路板”中的方
def find_all_cars_in_this_board(self):
my_cars_dict = {}
for h in range(self.height):
for w in range(self.width):
if self.game_board[h][w].isalpha():
if self.game_board[h][w] in my_cars_dict:
my_cars_dict[self.game_board[h][w]].append((h, w))
else:
my_cars_dict[self.game_board[h][w]] = [(h, w)]
return my_cars_dict
def create_all_cars_in_this_board(self, my_cars_dict):
my_cars = []
for letter in my_cars_dict.keys():
c = Car(my_cars_dict[letter])
my_cars.append(c)
for c in my_cars:
c.calc_size()
c.calc_direction()
return my_cars
请参阅下面的2个工作选项 哪一个最适合你 我们无法确定,因为我们无法看到您代码的所有详细信息
class CarSomething:
def find_all_cars_in_this_board(self):
my_cars_dict = {}
for h in range(self.height):
for w in range(self.width):
if self.game_board[h][w].isalpha():
if self.game_board[h][w] in my_cars_dict:
my_cars_dict[self.game_board[h][w]].append((h, w))
else:
my_cars_dict[self.game_board[h][w]] = [(h, w)]
return my_cars_dict
def create_all_cars_in_this_board(self):
my_cars_dict = self.find_all_cars_in_this_board()
my_cars = []
for letter in my_cars_dict.keys():
c = Car(my_cars_dict[letter])
my_cars.append(c)
for c in my_cars:
c.calc_size()
c.calc_direction()
return my_cars
car = CarSomething()
car.create_all_cars_in_this_board()
#---------------------- OR -------------------------
class CarSomething:
def find_all_cars_in_this_board(self):
my_cars_dict = {}
for h in range(self.height):
for w in range(self.width):
if self.game_board[h][w].isalpha():
if self.game_board[h][w] in my_cars_dict:
my_cars_dict[self.game_board[h][w]].append((h, w))
else:
my_cars_dict[self.game_board[h][w]] = [(h, w)]
return my_cars_dict
def create_all_cars_in_this_board(self,my_cars_dict):
my_cars = []
for letter in my_cars_dict.keys():
c = Car(my_cars_dict[letter])
my_cars.append(c)
for c in my_cars:
c.calc_size()
c.calc_direction()
return my_cars
car = CarSomething()
my_cars_dict = car.find_all_cars_in_this_board()
car.create_all_cars_in_this_board(my_cars_dict)
我们需要看看你是如何在这个板中调用
创建所有汽车的。但是,根据错误,您要么没有传递my\u cars\u dict
,要么调用该方法,就好像它是静态的一样。您没有显示调用此板中create\u all\u cars\u的代码。第二个是正确的。我希望这个问题得到解决。请随意投票。