List[str]: return ["a", "b"] +-6ren">
gpt4 book ai didi

python - Mypy:得到 "function",预期 "Callable[..., Any]"

转载 作者:行者123 更新时间:2023-12-05 05:48:23 25 4
gpt4 key购买 nike

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,那么错误就会消失。

编辑:

打开一个issue on github .

最佳答案

我认为这是一个 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.glob

关于python - Mypy:得到 "function",预期 "Callable[..., Any]",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70831013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com