Can mypy handle list comprehensions?

后端 未结 1 737
误落风尘
误落风尘 2020-12-11 08:40
from typing import Tuple
def test_1(inp1: Tuple[int, int, int]) -> None:
    pass

def test_2(inp2: Tuple[int, int, int]) -> None:
    test_tuple = tuple(e for         


        
相关标签:
1条回答
  • 2020-12-11 09:11

    As of version 0.600, mypy does not infer types in such cases. It would be hard to implement, as suggested on GitHub.

    Instead, we can use cast (see mypy docs):

    from typing import cast, Tuple
    
    def test_1(inp1: Tuple[int, int, int]) -> None:
        pass
    
    def test_2(inp2: Tuple[int, int, int]) -> None:
        test_tuple = cast(Tuple[int, int, int], tuple(e for e in inp2))
        reveal_type(test_tuple)
        test_1(test_tuple)
    
    0 讨论(0)
提交回复
热议问题