python - 如果我不调用 super().__init__(),自定义异常类的父级如何获取参数?
问题描述
假设我创建了一个这样的自定义异常类:
class MyError(Exception):
def __init__(self, msg):
pass
raise MyError('this is an error')
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# __main__.MyError: this is an error
该类MyError
不调用super().__init__()
,因此我看不到父类有任何方法可以学习错误消息('this is an error'
)。尽管如此,这段代码可以正常工作:错误消息确实存储在对象中的某个位置,并在我引发异常时打印出来。
如何以及为什么这样做?如果我__init__()
在子类中重写并且不调用super().__init__()
. 我试图找到 Exception 类的 Python 代码,但它看起来像是用 C 语言编写的,我不愿意深入研究并弄清楚它。
解决方案
推荐阅读
- angular - Ngx-quill 工具栏自定义不起作用 - quill 无法导入模块
- python - 插值后不能减去两列以适合另一列。
- pyspark - 在命令行中输入什么以在散景服务应用程序中运行 spark?我是否只需用 && 分隔两个命令行条目?
- puppeteer - 尝试使用 backstopjs 登录时,backstopjs 中的单击功能不起作用
- r - Stan 中的有序 Probit 估计
- python - 在数据框中创建一列,该列是汇总其他列中数据的字符串
- r - R:如何添加一个虚拟变量来计算出现次数
- django - django:选择多行时创建表格
- c++ - 如何将二维数组值与用户输入进行比较?
- python - 如何从本地路径文件夹服务器下载文件。不是网址