2017-02-12 5 views
1

Я пытаюсь заставить neovim использовать jedi для завершения кода, но я получаю странное поведение, когда я запускаю завершение кода на возвращаемых объектах. Похоже, что джедай не может определить тип возвращаемых объектов, но в некоторых случаях он может.python код jedi завершение возвращаемого объекта

В случае, если я что-то перепутал в своей конфигурации, я попробовал его с Atom, и он делает то же самое.

На первом снимке я начал завершение кода, а джеди распознает тип объектов. На втором это не так, но это похоже на то же самое для меня.

Возможно, кто-то может помочь или имел такую ​​же проблему раньше.

successful code completion

unsuccessful code completion

ответ

0

Тип вывода в Python трудно. Джедай делает все возможное, но иногда не может вывести типы. Обычно это происходит из-за таких вещей, как setattr, метаклассы, кеширование и некоторые другие вещи, которые джедай не может понять.

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

+0

Спасибо за ваше объяснение. Однако вид разочарования и времени. – Chris

+0

Я согласен! Однако понять Python на уровне машины просто непросто. –