Ответ 1
Вы можете использовать подсказки типов: http://www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html
def some_method(self, conn):
"""
@type conn: EC2Connection
"""
conn.<autocomplete>
Когда я использую стороннюю сторону l Библиотека, такая как boto, PyCharm, похоже, может автоматически заполнять
Однако, как только я определяю функцию самостоятельно, автоматически завершается разрыв внутри этой функции. Я понимаю, почему, поскольку я не могу дать функции какой-либо информации о ее аргументах, поэтому она не может догадаться, как автозаполнение. Есть ли способ решить эту проблему?
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
)
Вы можете использовать подсказки типов: http://www.jetbrains.com/pycharm/webhelp/type-hinting-in-pycharm.html
def some_method(self, conn):
"""
@type conn: EC2Connection
"""
conn.<autocomplete>
Вы можете указать информацию о типе параметров функции, используя параметр Python 3 и аннотации возвращаемого значения. Если вы используете Python 2, вы также можете указать информацию в функции docstring. PyCharm понимает формат, используемый docstrings бинарных модулей в стандартной библиотеке, например:
"""
foo(int, string) -> list
Returns the list of something
"""
Чтобы 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...)
Вы можете установить библиотеку через pyCharm "менеджер пакетов".
Перейдите в Настройки → Переводчик проекта → Переводчики Python
И в списке "Пакеты" щелкните по установке и поиску библиотеки, которую вы хотите установить.
После установки автозаполнение будет доступно в редакторе.
Надеюсь, это то, что вы ищете.