我正在玩 Never
type in mypy.如果我有一个函数 foo(x: int)
我预计当使用 Never
类型的值调用时 mypy 会提示,但它会默默地对调用进行类型检查:
from typing import Never
def foo(x: int):
pass
def bar(x: Never):
foo(x) # ok, I exected a type error
foo("foo") # err
--- 编辑 ---
仅供引用,我创建无人居住类型的解决方案是这样的
from abc import ABC, abstractmethod, final
@final
class Never(ABC):
@abstractmethod
def __init__(self) -> None: ...
最佳答案
这是正常的。 Never
是所有其他类型的子类型。毕竟,Never
是没有值的类型。所有 Never
类型的值都是所有其他类型的值,因为没有 Never
类型的值。
关于python - mypy 会检查“从不键入”吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77377886/