import glob
from typing import Callable, List
def fun1(b: str) -> List[str]:
return ["a", "b"] + [b]
def fun(a: str) -> Callable:
return fun1 if a == "hello" else glob.glob在此文件上运行mypy将提供:
error: Incompatible return value type (got "function", expected "Callable[..., Any]") [return-value]但我认为函数是可调用的?这似乎是glob.glob特有的,因为如果我只是返回fun1,那么错误就会消失。
编辑
打开一个github问题。
发布于 2022-01-24 10:32:56
我认为这是对mypy三值运算符的if else限制,这似乎确实有效:
import glob
from typing import Callable, List
def fun1(b: str) -> List[str]:
return ["a", "b"] + [b]
def fun(a: str) -> Callable:
if a == "hello":
return fun1
else:
return glob.globhttps://stackoverflow.com/questions/70831013
复制相似问题