Сбой автозаполнения PyCharm, поэтому показать все параметры - PullRequest
0 голосов
/ 02 октября 2018

Я недавно вошел в python и начал использовать PyCharm, главным образом для функции завершения кода, поскольку это помогает мне ознакомиться с новыми пакетами и библиотеками.

Работая с discord.py, я обнаружил, чтоФункция автозаполнения не показывает все возможные варианты.

Чтобы показать пример, этот код действителен и может быть выполнен:

Example 1

Однако, если я попытаюсьиспользуйте автозаполнение для заполнения строки 11, ни имя, ни имя пользователя не предлагаются.

Пример 2 Example 2

Пример 3 Example 3

Как ни странно, автозаполнение работаетхотя для большой части пакета, как показано здесь:

Example 4

Я долго пытался понять, почему это происходит.Я убедился, что использую правильный интерпретатор (discord.py показан в установленных пакетах) и включил «Сбор информации о типах времени выполнения для понимания кода» в Python Debugger в настройках, так как я прочитал, что это можетпомогите.

Я буду благодарен за понимание этого вопроса.

1 Ответ

0 голосов
/ 02 октября 2018

discord.Client использует __getattr__ для динамической обработки поиска атрибута для user.__getattr__ принципиально несовместим с типом статического анализа, который PyCharm использует для автозаполнения.

Я бы, вероятно, просто жил с PyCharm, не имея возможности найти этот атрибут.Если вы все равно хотите что-то с этим сделать, написание заглушек типа может помочь (или они могут не синхронизироваться с реализацией и вызвать больше проблем), или вы можете увидеть, будет ли discord.py принимать pullзапросить использование свойств вместо __getattr__ / __setattr__ для переадресации атрибута, которую они здесь делают.

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