我在python中有一个可以返回abool或a的函数list。有没有一种方法可以使用类型提示指定返回类型。
bool
list
例如,这是正确的方法吗?
def foo(id) -> list or bool: ...
从文档中
类 typing.Union 联合类型; Union [X,Y]表示X或Y。
类 typing.Union
typing.Union
联合类型; Union [X,Y]表示X或Y。
因此,表示多个返回数据类型的正确方法是
from typing import Union def foo(client_id: str) -> Union[list,bool]
但请注意,不强制键入。Python仍然是一种动态类型的语言。注解语法已开发出来,可在发布到生产中之前在代码开发过程中提供帮助。如PEP 484所述,“运行时不进行类型检查”。
>>> def foo(a:str) -> list: ... return("Works") ... >>> foo(1) 'Works'
如您所见,我正在传递一个int值并返回一个str。但是,__annotations__将设置为各自的值。
__annotations__
>>> foo.__annotations__ {'return': <class 'list'>, 'a': <class 'str'>}
请通过PEP 483了解有关类型提示的更多信息。另请参见Python 3.5中的类型提示是什么?
请注意,此功能仅适用于 Python 3.5 及更高版本。PEP 484中明确提到了这一点。