pythonnew,函数只要求一个参数,给定两个
我有下面的代码pythonnew,函数只要求一个参数,给定两个,python,Python,我有下面的代码 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
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)
。我看不出这怎么可能。我认为我的for循环剥离了allActions
列表(数组?或者是python唯一的列表)的每个元素,并为每个操作调用getActionUtility
。我错了吗
如果需要更多的代码,请告诉我,但我认为这应该涵盖整个问题。您需要将
self
作为getActionUtility
方法的第一个参数。当您像这样调用该方法时:
self.getActionUtility(a)
self
作为第一个参数隐式传递给方法。因此,只需将方法签名更改为:
def getActionUtility(self, action):
return 0
它不是,因为在你发布的代码中没有任何迹象表明这些是类中的方法。“它不是”指什么?它指的是你问题的最后一句话,我正在回答。“…我认为这应该涵盖整个问题。”哦,好吧,下面的那个人解决了。我想他用了推理之类的方法。