По некоторым архитектурным причинам, находящимся вне моего контроля, объект, которым я часто пользуюсь и для которого требуется полное завершение кода, представляет собой динамическое соединение нескольких функций поверх статических функций, уже присутствующих в исходном коде.
import lgb.reqs.plan
# Various imports which dynamically extend the smallform
import lgb_extensions.water_extras
import lgb_extensions.toolkit_extras
d = c.req[0] # type: lgb.reqs.plan.smallform
d = d # type: lgb_extensions.water_extras.common
d = d # type: lgb_extensions.toolkit_extras.common
# Now I get the autocomplete on d as I type "d."
d.
Я обнаружил, что метод переназначения d
отлично работает, но он кажется неправильным.Нет ли способа напечатать подсказку с помощью кортежа или чего-то еще?Я пытался и не мог понять это.
Я обнаружил, что ноутбук Jupyter отлично подходит для автозаполнения, и я перейду к сеансу ipython или ноутбука, если мне действительно нужно исследовать неизвестную кодовую базу,но в этом случае я довольно хорошо знаком с базой кода и просто хотел бы, чтобы автодополнения были лучше, поскольку я никогда не могу вспомнить, как именно это называется.Я в основном в пичарме или атоме, если это имеет значение.Приведенное выше решение уже решает мою проблему , если есть только несколько расширений , но оно не работает, когда у меня есть 10 вещей, расширяющих объект.В моем обычном случае у меня есть около 20 вещей, расширяющих объект, на котором я хотел бы выполнить автозаполнение.