1

我在下面的行中收到一条警告,指出:'str' object is not callable。

我能做些什么来让警告消失吗?

谢谢

Action.action()

这是代码块:

Action = DefineAction()
Action.action()


class DefineAction:
    def action(self):
        self.action = listAction[generateRandomNumber(0,4)]
        return self.action

这是listAction:

listAction =['walks','runs','jaunts','ambles','dashes','sprints']
4

2 回答 2

6

这实际上比我最初想象的要复杂,因为你有一个名为的函数self.action 一个名为的变量self.action,所以你的代码很混乱。第一次调用时DefineAction.action(),会用字符串覆盖函数,所以第二次调用时,会出现此错误。

只需给您的函数和变量起不同的名称,它应该可以正常工作。

于 2012-10-26T16:46:43.850 回答
2

在函数action中,您设置self.action为一个字符串。这意味着当您Action.action()第一次调用时,它会将属性Action.action设置为字符串,因此下次调用时Action.action()您将看到此错误。

只需为您的属性选择一个不同的名称,确保它与方法的名称不匹配。您DefineAction.action(Action)仍然可以使用调用原始action()方法,但这是不好的做法。

于 2012-10-26T16:49:10.080 回答