当我试图从我的班级调用我的函数时,出现了这个错误。 这是我的班级:
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())
我试图搜索并找到很多关于此错误的文章,但我认为这些都不是我的问题!
unbound method must be called with instance as first argument (got nothing instead)
unbound method f() must be called with fibo_ instance as first argument (got classobj instance instead)
答案 0 :(得分:3)
您为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
语句。这是我能想到的唯一方法来理解它 - 目前还不清楚你想要用你的Tools
类完成什么。这个名字太通用了 - 它没有说明这个类的目的。
答案 1 :(得分:2)
要使用没有类实例的方法,可以附加类方法装饰器,如下所示:
class Tool:
@classmethod
def PrintException(cls):
return 'ok'
可以使用:
>>> Tool.PrintException()
'ok'
>>>