python - mypy 会检查“从不键入”吗?

标签 python type-hinting mypy

我正在玩 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/

相关文章:

python - 正确的方法是使用类型提示/泛型来描述类型类 ("type"的参数)

python - 在 Django Celery 结果中使用临时文件

python - 如何排除字典中的特定元素?

ruby - Ruby 是否支持类型提示?

python - 自定义模块的 Pycharm 类型提示

python - Callable 是无效的基类?

python - 如何在保留类型的同时重写类 __init__ 方法

python - Mypy 产生不兼容的签名错误,但满足 Liskov 替换原则

python - 如何在 python 的 lookbehind 正则表达式中使用星号?

python - Django 路由问题