Pycharm: аннотация типа фабричного метода не обеспечивает автозаполнение

Я пытаюсь написать аннотацию типа для правильного автозаполнения в PyCharm. См. этот усовершенствованный пример кода:

class TestClass:
    a = 1

    @staticmethod
    def make_new_with_a(a: int) -> TestClass:
        t = TestClass()
        t.a = a
        return t

print(TestClass.make_new_with_a(7).a)

Код работает и печатает 7 на выходе. Но PyCharm подчеркивает -> TestClass красным и показывает Unresolved reference 'TestClass' при наведении курсора мыши на подсказку. Не работает автодополнение для полей возвращаемого типа метода (...make_new_with_a(7). + <ctrl+space>).

Похожие вопросы:


person d9k    schedule 26.08.2015    source источник
comment
проверьте это с помощью python3.5 и pycharm 5.0 rc, должно работать   -  person user996142    schedule 31.10.2015
comment
Решение дано в связанных Похожих вопросах: поставьте -> 'TestClass' (в виде строки) вместо -> TestClass. PyCharm/IntelliJ IDEA распознает это и предоставляет вам автозаполнение и другие полезные функции. (Подсказки типа: ссылки вперед)   -  person Bloke    schedule 12.10.2016
comment
Ого, это действительно дует   -  person Dagrooms    schedule 28.11.2017
comment
Возможный дубликат помещения текущего класса в качестве аннотации возвращаемого типа   -  person Dagrooms    schedule 28.11.2017