我有一个基于函数的代码,如下所示:
def foo(request):
raise NotImplementedError()
应该如何在基于类的视图中使用它?
class FooView(View):
def get(self, request, *args, **kwargs):
raise NotImplementedError()
编辑>问题:问题与语法有关。 FooView不是抽象类,它是实现类。当我尝试使用
return raise NotImplementedError()
时-给了我一个错误。我应该将NotImplementedError
放在get()
或其他函数中吗? 最佳答案
好吧,您正确地做到了,请在未实现的函数内调用raise NotImplementedError()
,并且每次调用这些函数时,它将被引发:
>>> class NotImplementedError(Exception):
... pass
...
>>> class FooView(object):
... def get(self):
... raise NotImplementedError()
...
>>> v = FooView()
>>> v.get()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in get
__main__.NotImplementedError
您可以在您认为有用的任何地方提出例外,例如在构造函数中指示未实现整个类:
>>> class FooView(object):
... def __init__(self):
... raise NotImplementedError()
...
>>> v = FooView()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in __init__
__main__.NotImplementedError