1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

typing.NoReturn以降のコードをmypyは到達不可と判断

Posted at

typing.NoReturnを返す関数以降のコードをmypyは到達不可と判断するようです。

しらなかった。

NoReturnはraise Exceptionに対する戻り値とする、と記事で読みました。

なので、そうしていました。

ただ、誤りは、別の型を返すにもかかわらず、->NoReturnとNoReturnしか返さないとしてしまうと、mypyが呼び出し元の関数以降に到達しない、とerrorを表示する。この意図がわからなかったので、簡易ながらメモ残します。

def main():

    my_no_return():
    # 以降のコードをmypy/Pycharmの「問題」は到達不能と判断下し、解析しない

def my_no_return(clause:bool)->NoReturn: #ここはException以外もあるため` NoReturn|None`とするのが正解
    if clause:
        raise Exception("hogehoge")
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?