Django 'Handler' 未定义
Django 'Handler' is not defined
我目前正在开发 Django REST 项目,并尝试在其上实施责任链模式。
自从我将 Python 版本从 3.9.2 降级到 3.6.5 后,我遇到了另一个问题,如下所示:
NameError: name 'Handler' is not defined
这是错误所在的代码:
from abc import ABCMeta, abstractmethod
from typing import Any, Optional
class Handler(metaclass=ABCMeta):
"""
The Handler interface declares a method for building the chain of handlers.
It also declares a method for executing a request.
"""
@abstractmethod
def set_next(self, handler: Handler) -> Handler:
pass
@abstractmethod
def handle(self, request) -> Optional[str]:
pass
我该如何解决?
这里的问题是您正在使用一个尚未定义的类型 Handler
来注释其方法之一。将此导入添加到文件顶部以解决此问题:
from __future__ import annotations
您可以在 Python 3.10 及更高版本中将其删除。有关详细信息,请参阅 https://www.python.org/dev/peps/pep-0563/#implementation。
我目前正在开发 Django REST 项目,并尝试在其上实施责任链模式。
自从我将 Python 版本从 3.9.2 降级到 3.6.5 后,我遇到了另一个问题,如下所示:
NameError: name 'Handler' is not defined
这是错误所在的代码:
from abc import ABCMeta, abstractmethod
from typing import Any, Optional
class Handler(metaclass=ABCMeta):
"""
The Handler interface declares a method for building the chain of handlers.
It also declares a method for executing a request.
"""
@abstractmethod
def set_next(self, handler: Handler) -> Handler:
pass
@abstractmethod
def handle(self, request) -> Optional[str]:
pass
我该如何解决?
这里的问题是您正在使用一个尚未定义的类型 Handler
来注释其方法之一。将此导入添加到文件顶部以解决此问题:
from __future__ import annotations
您可以在 Python 3.10 及更高版本中将其删除。有关详细信息,请参阅 https://www.python.org/dev/peps/pep-0563/#implementation。