I have seen some people prefer to create a list of strings by using thing = list[str]() instead of thing: list[str] = []. I think it looks kinda weird, but maybe that’s just because I have never seen that syntax before. Does that have any downsides?

It is also possible to use this for dicts: thing = dict[str, SomeClass](). Looks equally weird to me. Is that widely used? Would you use it? Would you point it out in a code review?

  • lascapi@jlai.lu
    link
    fedilink
    English
    arrow-up
    7
    arrow-down
    2
    ·
    1 year ago

    I find like you that the first one is strange.

    But I think that both are useless because you can put what you want in a list in python.

    thing = List[str]()
    type(thing)
    # 
    stuff: List[str] = []
    type(stuff)
    # 
    

    But in other hand it’s helpful in IDE to get some warning like Expected type 'str' (matched generic type '_T'), got 'int' instead.

    Soooo, in the end I say that I choose this one thing: list[str] = [] because it looks more widely used and easily readable.

    • UlrikHDA
      link
      fedilink
      arrow-up
      11
      ·
      1 year ago

      But I think that both are useless because you can put what you want in a list in python.

      You can say that about all type hinting, but assuming you actually adhere to the type hints, it’s a great tool to make python projects manageable.