如何解决Python、MetaClasses、HTTPException、__init_subclass__ - TypeError:异常必须从 BaseException 派生
有人能指出我如何解决我的问题:
from werkzeug.exceptions import HTTPException
class HTTPExceptions(HTTPException):
subclasses = dict()
def __init_subclass__(cls,**kwargs):
super().__init_subclass__(**kwargs)
cls.subclasses[f'{cls.__name__}'] = cls.__name__
class Error501(HTTPExceptions):
code = 501
当我尝试跑步时:
raise HTTPExceptions.subclasses['Error501']
我得到了
TypeError: exceptions must derive from BaseException
有人知道如何解决吗?
解决方法
TEMPLATE = app
TARGET = Peak
DESTDIR = ../x64/Release
QT += core opengl gui widgets openglextensions
QT += network widgets
CONFIG += release
DEFINES += _UNICODE WIN64 QT_DLL QT_OPENGL_LIB QT_OPENGLEXTENSIONS_LIB QT_WIDGETS_LIB
INCLUDEPATH += ./GeneratedFiles \
. \
./GeneratedFiles/$(ConfigurationName)
DEPENDPATH += .
MOC_DIR += ./GeneratedFiles/$(ConfigurationName)
OBJECTS_DIR += release
UI_DIR += ./GeneratedFiles
RCC_DIR += ./GeneratedFiles
是一个字符串,因此您定义 cls.__name__
的方式是作为字符串到字符串的映射。我假设您的意图是:
HTTPExceptions.subclasses
运行结果
cls.subclasses[f'{cls.__name__}'] = cls
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。