Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自不同方法的python字典导致;缺少位置参数“;错误_Python_Function_Dictionary_Methods - Fatal编程技术网

来自不同方法的python字典导致;缺少位置参数“;错误

来自不同方法的python字典导致;缺少位置参数“;错误,python,function,dictionary,methods,Python,Function,Dictionary,Methods,我正在用python制作一个cli“尖峰时刻”游戏。游戏板来自用户的输入,汽车由字母表示。我通过将每一个独特的字母添加到字典中来解析电路板以查找每一辆汽车。我试图使用汽车字典来创建汽车(代码前面的汽车类实例),并计算大小和方向 使用board类中的代码,我得到了以下错误:TypeError:create_all_cars_in_this_board()缺少1个必需的位置参数:“my_cars_dict” 看起来“查找所有车辆”在“此电路板”中的方法正在工作,但“创建所有车辆”在“此电路板”中的方

我正在用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的代码。第二个是正确的。我希望这个问题得到解决。请随意投票。