【发布时间】:2016-07-21 09:21:55
【问题描述】:
我从来没有完全理解 Python(或者说实话)中的异常处理。我正在尝试自定义异常,并发现了以下行为。
class MyError(Exception):
def __init__(self, anything):
pass
me = MyError("iiiiii")
print(me)
输出:
iiiiii
我假设print() 调用Exception.__str__()。
基类Exception如何知道打印iiiiii?字符串"iiiiii" 通过参数anything 传递给MyError 的构造函数,但anything 根本没有存储在MyError 中的任何位置!
此外,MyError 的构造函数不会调用其超类(异常)的构造函数。那么,print(me) 是如何打印出iiiiii 的呢?
【问题讨论】:
-
什么版本的 Python?这无法在 Python 2.7 中重现。
-
抱歉忘了说,Python 3.5.1。
标签: python python-3.x exception