Pycharm 由于 NoReturn 类型提示而提供无法访问的代码

问题描述 投票:0回答:1

我正在为将引发异常的代码编写测试。

with pytest.raises(Exception) as exception:
    A.b()

assert str(exception.value) == "exception"

函数

b
永远不会返回任何东西,并且可能会引发异常。 一旦我将
b()
的返回类型设置为
def b() -> NoReturn:
,我就会发现永远不会达到断言“此代码无法访问”。要么我没有明白NoReturn的目的,要么它是Pycharm中的一个错误,因为一旦我调试它,该行是可达的。

python-3.x pycharm pytest
1个回答
0
投票

“永远不会返回东西并可能引发异常”自相矛盾。它不能同时“从不返回任何东西”和“可能引发异常”。

即使函数没有显式使用

return
语句,也会隐式返回
None

您应该将类型提示中的

NoReturn
更改为
None

© www.soinside.com 2019 - 2024. All rights reserved.