使用内置映射函数键入

2024-10-01 15:46:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我的IDE(PyCharm)无法自动完成以下操作:

from typing import List, TypeVar

T = TypeVar('T')

def listify(x: T) -> List[T]:
    return [x]

str_list: List[str] = ['a', 'b']
listified = map(listify, str_list)
listified[0].<TAB>  # autocomplete fail, IDE fails to recognize this is a List

这是我的IDE有问题吗,还是typingmap不兼容?在

不管答案是什么,我试图通过包装map来修复:

^{2}$

同样,这是我的IDE的问题,还是我对typing模块的期望不正确?在


Tags: fromimporttypingmapreturndefidetab
1条回答
网友
1楼 · 发布于 2024-10-01 15:46:59

问题是map返回一个迭代器,而不能索引([0])迭代器。当您将map转换为list时,PyCharm会识别类型:

from typing import List, TypeVar

T = TypeVar('T')

def listify(x: T) -> List[T]:
    return [x]

str_list: List[str] = ['a', 'b']
listified = list(map(listify, str_list))  # list is new here
listified[0].

截图:

enter image description here

但是,PyCharm似乎可以在没有任何类型提示的情况下推断函数的类型(在本例中)。在

相关问题 更多 >

    热门问题