Python警告“';str';“不可赎回”;调用函数时
我在下面的一行收到一条警告:“str”对象不可调用 我能做些什么让警告消失吗 谢谢Python警告“';str';“不可赎回”;调用函数时,python,python-3.x,pycharm,Python,Python 3.x,Pycharm,我在下面的一行收到一条警告:“str”对象不可调用 我能做些什么让警告消失吗 谢谢 Action.action() 以下是代码块: Action = DefineAction() Action.action() class DefineAction: def action(self): self.action = listAction[generateRandomNumber(0,4)] return self.action 以下是行动清单: li
Action.action()
以下是代码块:
Action = DefineAction()
Action.action()
class DefineAction:
def action(self):
self.action = listAction[generateRandomNumber(0,4)]
return self.action
以下是行动清单:
listAction =['walks','runs','jaunts','ambles','dashes','sprints']
这实际上比我最初想象的要复杂,因为您有一个名为
self.action
的函数和一个名为self.action
的变量,所以您的代码很混乱。第一次调用DefineAction.action()
时,会用字符串覆盖函数,因此第二次调用时会出现此错误
只要给你的函数和变量起不同的名字,它就可以正常工作。这实际上比我最初想象的要复杂,因为你有一个名为
self.action的函数和一个名为self.action的变量,所以你的代码很混乱。第一次调用DefineAction.action()
时,会用字符串覆盖函数,因此第二次调用时会出现此错误
只需为函数和变量指定不同的名称,它就可以正常工作。在函数操作
中,将self.action
设置为字符串。这意味着,当您第一次调用Action.Action()
时,它将属性Action.Action
设置为字符串,因此下次调用Action.Action()
时,您将看到此错误
只需为属性选择一个不同的名称,确保它与方法的名称不匹配。您可以使用DefineAction.action(action)
仍然调用原始的action()
方法,但这是一种不好的做法。在函数action
中,您将self.action
设置为字符串。这意味着,当您第一次调用Action.Action()
时,它将属性Action.Action
设置为字符串,因此下次调用Action.Action()
时,您将看到此错误
只需为属性选择一个不同的名称,确保它与方法的名称不匹配。您可以使用DefineAction.action(action)
仍然调用原始的action()
方法,但这是一种糟糕的做法。什么是listAction
?另外,修复缩进。哦,对不起……我缩进并添加了listAction列表。-谢谢。这当然与Python 2.7 vs 3.3无关。更新了这个效果。什么是listAction
?另外,修复缩进。哦,对不起……我缩进并添加了listAction列表。-谢谢。这当然与Python 2.7 vs 3.3无关。对此进行了更新。