Подтвердить что ты не робот

Как заставить PyCharm автоматически заполнять код в методах?

Когда я использую стороннюю сторону l Библиотека, такая как boto, PyCharm, похоже, может автоматически заполнять

enter image description here

Однако, как только я определяю функцию самостоятельно, автоматически завершается разрыв внутри этой функции. Я понимаю, почему, поскольку я не могу дать функции какой-либо информации о ее аргументах, поэтому она не может догадаться, как автозаполнение. Есть ли способ решить эту проблему?

Edit

Я попытался использовать docstring (для Python 2), но все равно не автозаполняю

def delete_oldest_backups(conn, backups_to_keep, backup_description):
    """
    delete_oldest_backups(EC2Connection, int, string)
    """

(Также попробовал boto.ec2.connection.EC2Connection вместо EC2Connection)

4b9b3361

Ответ 2

Вы можете указать информацию о типе параметров функции, используя параметр Python 3 и аннотации возвращаемого значения. Если вы используете Python 2, вы также можете указать информацию в функции docstring. PyCharm понимает формат, используемый docstrings бинарных модулей в стандартной библиотеке, например:

"""
foo(int, string) -> list

Returns the list of something
"""

Ответ 3

Чтобы PyCharm распознал экземпляр объекта и извлек все его методы, мы должны использовать следующие утверждения. Но я думаю, что оба являются ужасным способом тратить время на программирование и время выполнения.

assert isinstance(instanceX, ClassOfInstanceX)  
instanceX.{#list of method/properties appears}

В качестве альтернативы вы также можете использовать имя класса, которое будет вызывать метод или свойство каждый раз, когда вы хотите вызвать его, и передать экземпляр в параметр self. Но это слишком многословно, по моему вкусу, esp для вложенного класса

ClassOfInstanceX.{#list of method/properties appears}
     # then you will have...
ClassOfInstance.method(instanceX, args...)

Ответ 4

Вы можете установить библиотеку через pyCharm "менеджер пакетов".

Перейдите в Настройки → Переводчик проекта → Переводчики Python

Package list

И в списке "Пакеты" щелкните по установке и поиску библиотеки, которую вы хотите установить.

Install package

После установки автозаполнение будет доступно в редакторе.

Autocomple inside function

Надеюсь, это то, что вы ищете.