Pycharm: Type hint list of items

后端 未结 2 1525
旧巷少年郎
旧巷少年郎 2021-01-13 02:41

My question is different because I made a mistake using type hint.

I found a weird type hinging in pycharm:

Example is my own class. But I gues

相关标签:
2条回答
  • 2021-01-13 03:13

    According to official PEP to denote list of objects you should use typing.List, not list builtin.

    from typing import List
    
    
    class Something:
        pass
    
    
    def f(seq: List[Something]):  # no warning
        for o in seq:
            print(o)
    

    Update January 2021:

    Please note that built-in generics were implemented in Python 3.9, as described in PEP585.

    0 讨论(0)
  • 2021-01-13 03:13

    Łukasz explained how to correct your code. I'll explain why the error message says what it does.

    list defines __getitem__, true, but that isn't what the error message is complaining about. The error message is saying that type itself, which is the list type's type, doesn't support __getitem__. For list[whatever] to be valid, type would have to define a __getitem__ method, not list.

    0 讨论(0)
提交回复
热议问题