mypy - 如何将线路标记为无法访问

Dan*_*ker 8 python mypy

我有一个以下形式的函数:

def get_new_file(prefix: str) -> pathlib.Path:
    for i in itertools.count(0):
        p = pathlib.Path(f'{prefix}_{i}')
        if not p.is_file():
            return p
    # This line is unreachable.
Run Code Online (Sandbox Code Playgroud)

mypy 抱怨该函数缺少 return 语句,这是可以理解的。有没有办法标记一条线,以便通知 mypy 该线应被视为不可到达?

Leo*_*ark 8

这是作为一个问题提出的。推荐的解决方案是assert False

def get_new_file(prefix: str) -> pathlib.Path:
    for i in itertools.count(0):
        p = pathlib.Path(f'{prefix}_{i}')
        if not p.is_file():
            return p
    assert False
Run Code Online (Sandbox Code Playgroud)