Да, это будет выводить это. Вот демо:
from typing import List
class MyType:
pass
class X:
def bar(self) -> MyType: pass
def foo() -> List[X]: pass # note the square brackets
bars = [x.bar() for x in foo()]
reveal_type(bars)
Тогда, когда вы запустите mypy script.py
в терминале, вы увидите сообщение:
Revealed type is 'builtins.list[script.MyType*]'
Документация о reveal_type
здесь .
Кстати, с вашим кодом возникла небольшая проблема, она должна быть List[X]
, а не List(X)
.
PyCharm также распознает типы. bars.
даст опции автозаполнения для методов списка, а bars[0].
даст опции для MyType
.