我正在尝试在我的类中创建一个名为feedback的新方法。它应该包含一个名为grade和self的参数。当我运行程序时,它会显示一个异常:premission()缺少1个必需的位置参数:“self”
我试着在反馈方法中加入两个参数
def praise(self):
if self.name:
return "You inspire me, {}".format(self.name)
def reassurance(self):
if self.name:
return "Chin up, {}. You'll get it next time!".format(self.name)
def feedback(self, grade):
if self.name and grade > 50:
return Student.praise()
else:
return Student.reassurance()
如果成绩在50分以上,则应返回表扬方法的结果。如果是50或更低,它应该返回安心方法的结果
下面是一个完整的类,与您的代码最为相似:
或者,正如其他人所说,使用self.premission()和self.resurance()而不是Student.premission(self)或Student.resurance(self)
调用
Student.praise()
时,它是一个未绑定的方法,因此self
没有定义。这是您缺少的必需位置参数。 您可以将其称为unbound并传递self
(不是首选):Student.praise(self)
或者(首选),将其作为绑定方法调用:
self.praise()
要调用实例方法(以
self
作为第一个隐式参数的方法),您必须实际地在实例上调用它。这里,Student
是类的类型,而不是实例。实例是self
,隐式传递解决方案:
相关问题 更多 >
编程相关推荐