我在下面的行上收到警告:'str'对象不可调用。
我有什么办法可以让警告消失吗?
由于
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']
答案 0 :(得分:6)
这实际上比我原先想象的要复杂得多,因为你有一个名为self.action
的函数和一个名为self.action
的变量,所以你的代码很混乱。第一次调用DefineAction.action()
时,用字符串覆盖函数,所以第二次调用它时,会出现此错误。
只需给你的函数和变量命名不同,它应该可以正常工作。
答案 1 :(得分:2)
在函数action
中,将self.action
设置为字符串。这意味着,当您第一次将属性Action.action()
设置为字符串时调用Action.action
,所以下次调用Action.action()
时,您会看到此错误。
为您的属性选择一个不同的名称,确保它与方法的名称不匹配。您可以使用DefineAction.action(Action)
仍然调用原始action()
方法,但这是不好的做法。