我在python中有一个函数可以返回a bool或a list.有没有办法使用类型提示指定返回类型.
例如,这是正确的方法吗?
def foo(id) -> list or bool:
...
Run Code Online (Sandbox Code Playgroud) 如何使用类型提示来注释返回一个Iterable总是产生两个值的函数:a bool和a str?提示Tuple[bool, str]很接近,除了它将返回值类型限制为元组,而不是生成器或其他类型的可迭代.
我很好奇,因为我想注释一个foo()用于返回多个值的函数,如下所示:
always_a_bool, always_a_str = foo()
Run Code Online (Sandbox Code Playgroud)
通常函数喜欢foo()做这样的事情return a, b(它返回一个元组),但我喜欢的类型暗示有足够的灵活性,以取代发电机或列表或别的东西返回的元组.
当我为返回一个参数的函数编写注释时,我没有任何问题。
def func() -> str:
return "ok"
Run Code Online (Sandbox Code Playgroud)
但是,当我编写带有两个或多个参数的注释时,我的PyCharm给了我SyntaxError: invalid syntax。
def func() -> str, str:
return "ok - 1", "ok - 2"
Run Code Online (Sandbox Code Playgroud)
我认为参数可以与组合使用tuple,但是我认为这不是最好的方法。
我的问题是:如何正确注释带有两个或多个返回参数的函数?