python查询中的函数

时间:2010-07-20 11:34:29

标签: python

def directionToVector(direction, speed = 1.0):
    dx, dy =  Actions._directions[direction]
    return (dx * speed, dy * speed)

def getCostOfActions(self, actions):
    """
    Returns the cost of a particular sequence of actions.  If those actions
    include an illegal move, return 999999.  This is implemented for you.
    """
    if actions == None: return 999999
    x,y= self.startingPosition
    for action in actions:
      dx, dy = Actions.directionToVector(action)
      x, y = int(x + dx), int(y + dy)
      if self.walls[x][y]: return 999999
    return len(actions)

def getCostOfActions(self, actions):
     """
     actions: A list of actions to take

     This method returns the total cost of a particular sequence of actions.
     The sequence must be composed of legal moves
     """

 File "in getCostOfActions
    dx, dy = Actions.directionToVector(action)
  File  in directionToVector
    dx, dy =  Actions._directions[direction]
KeyError: 'N'

我正在使用最后一个函数,但该函数不接受参数。这里的论点应该是什么?他们的类型应该是什么?

1 个答案:

答案 0 :(得分:1)

第一个参数当然是self,因为这是一个实例方法。这是隐式传递的。

根据docstring,呼叫者应提供的参数是“操作:列表要采取的行动”。

E.g:

instance.getCostOfActions([North, East, South, West])

N.B:你有两行:

def getCostOfActions(self, actions):
def getCostOfActions(self, actions):

第一个被第二个替换。