Python数据类:FrozenInstanceError是否为AttributeError的子类?

2024-10-03 04:26:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在对新的python数据类进行一些自学。在

可以传递给dataclass decorator的参数之一是fronged=True,以使对象不可变。在

文件(和经验)表明:

dataclasses.FrozenInstanceError

将引发异常。在

当单元测试(使用pytest)时,以下测试通过:

^{pr2}$

其中PageURL是一个带有frozen=True参数的数据类。在

你知道为什么pytest指示这个操作(给页面赋值)的原因吗_url.value)引发属性错误?FrozenInstanceError是否从AttributeError继承?在

注意:如果我将单元测试更改为测试不同的异常(即TypeError),测试将按预期失败。在


Tags: 文件数据对象true参数pytestdecorator经验
1条回答
网友
1楼 · 发布于 2024-10-03 04:26:03

这是一个子类,您可以使用内置函数^{}轻松验证:

>>> issubclass(FrozenInstanceError, AttributeError)
True

如果您希望在测试中使用精确的类型匹配,那么可以使用异常实例而不是异常类。另外,这还允许您在异常上下文(即哪个字段触发了异常)上进行断言。在

^{pr2}$

使用pytest.raises需要安装我的插件^{}。在

相关问题 更多 >