python - 在 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
”?
解决方案
Python 类型提示不能排除类型。您不能排除None
s、str
s 或任何其他类型。
您可以用来尝试模拟排除的唯一方法None
是使用Union并在字典中编写您实际使用的每种类型。
推荐阅读
- html - 无法弄清楚如何使用网格模板区域对齐元素
- ruby - 从 Ruby 替换 YAML 占位符
- flutter - 当其中的代码仍然有效时,使用 Visibility 有什么好处
- apache-pig - 获取空输出
- http - KRB_AP_ERR_MODIFIED - Kerberos 失败,无法确定 SPN 问题
- sql - 使用相关子查询简化 CASE 语句
- javascript - num2persian 无法缩小此文件中的代码:./node_modules/num2persian
- prolog - Prolog 错误:预期为 `character',找到 `"((.).)"'(字符串)
- python - 如果它们的值超过某个阈值,如何将相关矩阵特征提取到列表中
- junit - 使用 jUnit5 @ParameterizedTest 和 csvSource 进行并行测试