首页 > 解决方案 > 在 Python 类型注释中排除类型

问题描述

我写了以下函数:

def _clean_dict(d):
    return {k: v for k, v in d.items() if v is not None}

我想向函数添加类型注释:

def _clean_dict(d: Dict[Any, Any]) -> Dict[Any, Any]:                           
    return {k: v for k, v in d.items() if v is not None}

但是,我想明确定义返回字典中的值不能为无。

有没有办法说“Any类型,除了NoneType”或“每个可能的值,但None”?

标签: pythonpython-3.xtype-hintingmypypython-typing

解决方案


Python 类型提示不能排除类型。您不能排除Nones、strs 或任何其他类型。

您可以用来尝试模拟排除的唯一方法None是使用Union并在字典中编写您实际使用的每种类型。


推荐阅读