@AlexBin

Как в PyCharm сделать Type Hinting классов?

Не разобрался, каким образом в PyCharm (python2) сделать тайп хинтинг для функции, которая принимает в качестве аргумента класс, или подклассы этого класса. Экземпляры классов хинтятся замечательно, но как хинтить сами классы?

Пробовал делать вот так:
class Base(object):
    field = 0
    
class Sub1(Base):
    field1 = 1

class Sub2(Base):
    field2 = 2

class NotSubclass(object):
    field3 = 3

def some_func(SomeClass):
    # type: (T <= Base) -> None
    print SomeClass # если тут сделать "SomeClass." (поставить точку), 
    # то выпадающее меню после точки не предлагает список атрибутов нужных классов

Кроме того, если вызвать функцию, и передать туда явно не класс, а например число, то pycharm не подсвечивает ошибку. Хотя при хинтинге всего остального, подсвечивает.

Либо я не так понял документацию и плохо гуглил, либо PyCharm пока не умеет хинтить классы.
  • Вопрос задан
  • 1025 просмотров
Решения вопроса 1
@Andy_U
Вот так надо:
5d127782c5282869171049.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bbkmzzzz
если я правильно понял, что имеется в виду. Вот тут тоже можно почитать
def some_func(SomeClass: Base):
либо
def some_func(SomeClass):
        """

        :type SomeClass: Base
        """

доки
Можно установить модуль Jedi (если не установлен), описание на хабре
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы