gpt4 book ai didi

python - 引发错误类与类实例的优缺点是什么

转载 作者:太空宇宙 更新时间:2023-11-04 07:58:18 34 4
gpt4 key购买 nike

以下似乎具有相同的效果:

>>> raise NotImplementedError
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NotImplementedError

>>> raise NotImplementedError()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NotImplementedError

有区别吗?如果有,各自的优缺点是什么?

最佳答案

如果异常类不需要初始化参数,则本质上没有区别:

If an exception class is passed, it will be implicitly instantiated by calling its constructor with no arguments.

[强调我的]

否则,您将得到另一个提示实例初始化的异常:

class MyException(Exception):
def __init__(self, arg):
pass

raise MyException

Traceback (most recent call last):
File "python", line 6, in <module>
TypeError: __init__() takes exactly 2 arguments (1 given)

显然,您可以通过将自定义参数传递给自定义异常类,或将自定义消息传递给内置异常类来做更多的事情:

>>> raise ValueError('number must be 42')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: number must be 42

以上内容比贫瘠的 ValueError 信息量大得多(从用户的角度来看,这是非常可取的)。

关于python - 引发错误类与类实例的优缺点是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44909951/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com