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?
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.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.