0

私は以下のコードを持っています

def runRobot(self):
  allActions = ('North','South','East','West','Suck')
  bestActionUtility = 0
  toDo = 'Suck'
  for a in allActions:
    actionUtility = self.getActionUtility(a)
    if(actionUtility > bestActionUtility):
      toDo = a
      bestActionUtility = actionUtility
  # Do lots of robot stuff here!
  self.action = random.choice(['North','South','East','West','Suck'])

def getActionUtility(action):
  return 0

runRobot が呼び出されるとgetActionUtility(action)、2 つの引数を指定していることを示すエラーが表示され続けます。これがどのように可能かわかりません。allActions私のforループは、リストの各要素(配列?またはpythonのみのリスト)を剥がしgetActionUtility、各アクションを呼び出すと思います。私が間違っている?

さらにコードが必要な場合はお知らせください。ただし、これで問題全体をカバーできるはずです。

4

1 に答える 1

1

メソッドselfの最初のパラメーターとして必要です。getActionUtility次のようにメソッドを呼び出すと:

self.getActionUtility(a)

selfメソッドの最初の引数として暗黙的に渡されます。したがって、メソッドのシグネチャを次のように変更するだけです。

def getActionUtility(self, action):
    return 0
于 2013-09-26T17:32:04.890 に答える