首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mypy:得到“函数”,预期“可调用[.,任何]”

Mypy:得到“函数”,预期“可调用[.,任何]”
EN

Stack Overflow用户
提问于 2022-01-24 08:37:29
回答 1查看 909关注 0票数 3
代码语言:javascript
复制
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将提供:

代码语言:javascript
复制
error: Incompatible return value type (got "function", expected "Callable[..., Any]")  [return-value]

但我认为函数是可调用的?这似乎是glob.glob特有的,因为如果我只是返回fun1,那么错误就会消失。

编辑

打开一个github问题

EN

回答 1

Stack Overflow用户

发布于 2022-01-24 10:32:56

我认为这是对mypy三值运算符的if else限制,这似乎确实有效:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70831013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档