Автозаполнение в PyCharm на основе типа - PullRequest
0 голосов
/ 23 сентября 2018

Я использую PyCharm для кодирования на Python.Автозаполнение в PyCharm не так хорошо, как в IntelliJ (Java).Рассмотрим приведенный ниже код

a = [1,2,3,4]
a.

. В этом случае после нажатия кнопки dot PyCharm предоставляет полный набор параметров автозаполнения.Рассмотрим приведенный ниже случай

def func_a(a):
    a.

Здесь функции func_a я передаю list в качестве аргумента.Но когда я нажимаю dot после a, PyCharm не дает никаких вариантов автозаполнения.Я знаю, что это потому, что Python является языком с динамической типизацией, и PyCharm не имеет представления, чтобы определить, какой тип a.

Но есть ли способ сообщить PyCharm тип a, может быть в комментариях к документацииили что-то типа того?Итак, что PyCharm может предоставить допустимые параметры автозаполнения?

Ответы [ 3 ]

0 голосов
/ 23 сентября 2018

Может сделать : (примеры использования list):

def func_a(a:list):
    do_this()

Или проверить вручную:

def func_a(a):
    if isinstance(a,list):
        do_this
    else:

        raise TypeError("expected type of 'list' but got type of '%s'"%type(a).__name__)        
0 голосов
/ 23 сентября 2018

Это может не ответить на ваш вопрос, но это будет полезно для тех, кто только начал использовать pycharm для приложения Django.

PyCharm не дает (он подчеркивает некоторые встроенные функции красным) auto-опция завершения для Django, если вы начали проект с Pure Python .Параметр Pure Python появляется, когда вы щелкаете по опции новый проект в меню файлов или когда вы запускаете pycharm для запуска нового проекта. Pure Python - опция, выбранная по умолчанию на странице нового проекта.Вы должны выбрать Django (второй вариант), чтобы получить автозаполнение в PyCharm.

Надеюсь, это будет полезно для других.

0 голосов
/ 23 сентября 2018

Да, Python 3.5 вводит подсказки типов, а Pycharm использует их.

Использование

def func_name(param: type) -> return_type:

Как и

def func_a(a: list):

Обратите внимание, что все подсказки типов являются полностью необязательными иигнорируется переводчиком.Тем не менее, Pycharm может потенциально помочь вам обнаружить ошибки типа, если вы используете его как привычку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...