Python 必须使用Tools实例作为第一个参数调用未绑定的方法MyFunction()(但没有得到任何结果)
当我试图从类中调用函数时,会出现此错误。 这是我的班级:Python 必须使用Tools实例作为第一个参数调用未绑定的方法MyFunction()(但没有得到任何结果),python,class,Python,Class,当我试图从类中调用函数时,会出现此错误。 这是我的班级: class Tools: def PrintException(self): # Do something return 'ok' View.py: from tools import Tools def err(request): a = 10 b = 0 msg = "" try: print a / b except Exceptio
class Tools:
def PrintException(self):
# Do something
return 'ok'
View.py:
from tools import Tools
def err(request):
a = 10
b = 0
msg = ""
try:
print a / b
except Exception,ex:
c = Tools
return HttpResponse(Tools.PrintException())
我试着搜索并找到了很多关于这个错误的文章,但我认为没有一篇是我的问题分配给
c
的是类,而不是类的实例。你应该做:
c = Tools()
此外,应在实例上调用该方法:
def err(request):
a = 10
b = 0
msg = ""
try:
print a / b
except Exception,ex:
c = Tools()
return HttpResponse(c.PrintException())
注意,我已经更改了缩进,所以
return
语句只在异常时执行。这是我能想到的唯一让它变得有意义的方法——不清楚您想用工具类实现什么。这个名称太泛化了-它没有说明这个类的用途。您分配给c
的是一个类,而不是一个类的实例。你应该做:
c = Tools()
此外,应在实例上调用该方法:
def err(request):
a = 10
b = 0
msg = ""
try:
print a / b
except Exception,ex:
c = Tools()
return HttpResponse(c.PrintException())
注意,我已经更改了缩进,所以return
语句只在异常时执行。这是我能想到的唯一让它变得有意义的方法——不清楚您想用工具类实现什么。此名称太通用-它不能说明此类的用途。要在没有类实例的情况下使用方法,可以附加类方法装饰器,如下所示:
class Tool:
@classmethod
def PrintException(cls):
return 'ok'
可用于:
>>> Tool.PrintException()
'ok'
>>>
要在没有类实例的情况下使用方法,可以附加类方法装饰器,如下所示:
class Tool:
@classmethod
def PrintException(cls):
return 'ok'
可用于:
>>> Tool.PrintException()
'ok'
>>>