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'
>>>