Задать вопрос
@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 пока не умеет хинтить классы.
  • Вопрос задан
  • 1130 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@Andy_U
Вот так надо:
5d127782c5282869171049.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bbkmzzzz
если я правильно понял, что имеется в виду. Вот тут тоже можно почитать
def some_func(SomeClass: Base):
либо
def some_func(SomeClass):
        """

        :type SomeClass: Base
        """

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

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
24 янв. 2025, в 22:10
1000 руб./за проект
24 янв. 2025, в 21:52
20000 руб./за проект
24 янв. 2025, в 21:38
10000 руб./за проект