我在 python 中有一个函数可以返回 bool
或 list
。有没有办法使用类型提示指定返回类型?
例如,这是正确的做法吗?
def foo(id) -> list or bool:
...
原文由 Yahya Uddin 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在 python 中有一个函数可以返回 bool
或 list
。有没有办法使用类型提示指定返回类型?
例如,这是正确的做法吗?
def foo(id) -> list or bool:
...
原文由 Yahya Uddin 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果有人在这里搜索“如何指定多个返回值的类型?”,请使用 Tuple[type_value1, ..., type_valueN]
from typing import Tuple
def f() -> Tuple[dict, str]:
a = {1: 2}
b = "hello"
return a, b
更多信息: 如何注释多个返回值的类型?
原文由 Anton Khodak 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
从 文档
因此,表示多个返回数据类型的正确方法是
但请注意,不强制执行打字。 Python 仍然是一种动态类型的语言。注释语法的开发是为了在代码发布到生产环境之前的开发过程中提供帮助。正如 PEP 484 所述,“在运行时不会进行类型检查。”
如您所见,我正在传递一个 int 值并返回一个 str。但是
__annotations__
将被设置为相应的值。请通过 PEP 483 了解更多关于类型提示的信息。另请参阅 什么是 Python 3.5 中的类型提示? ?
请注意,这仅适用于 Python 3.5 及更高版本。 PEP 484 中明确提到了这一点。
从 Python 3.10 开始,有一种新的方式来表示这个联合。请参阅 联合类型:
正如我们所看到的,这与以前版本中的
typing.Union
完全相同。可以修改我们之前的示例以使用此表示法: