【发布时间】:2021-12-11 23:46:41
【问题描述】:
我写了以下函数:
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 之外的所有可能值”?
【问题讨论】:
-
您实际上并没有通过类型提示强制返回类型。存在类型提示,因此当您从其他地方引用代码时,您可以发现期望函数返回的内容。由谁编写代码来确保函数返回适当的值(如果它返回任何东西)。
-
我没有询问强制类型。只是希望注释明确显示返回字典的值中不应有
None/NoneType。 -
啊,我的错。您可以通过函数文档字符串将其添加为注释?
-
我可以,但我确实认为应该有一种使用类型提示的方法来做到这一点,就像您可以使用
Optional来显示某些东西可以是 None 一样。 -
从代码中可以明显看出这些值不能是
None,因为它在字典理解中明确说明。正如@MurrayW 所说,评论或文档字符串将是人们会使用的。
标签: python python-3.x type-hinting mypy python-typing