2015-05-03 4 views
2

Помню, что PyCharm и RStudio имеют способ показать, какие данные/модули/функции находятся в текущем интерактивном сеансе.Написание программы elisp для автоматической интроспекции объектов Python

E.g. когда вы сделаете a = [1, 2, 3], будет небольшая часть окна, дающая информацию об объекте a.

Есть ли способ, которым мы можем иметь что-то подобное в Emacs (возможно, используя модуль python inspect)?

+0

В настоящее время изучая это, задайтесь вопросом, нашли ли вы решение! спасибо – SerialDev

ответ

2

Обычно я запускаю интерактивную сессию python в emacs при кодировании python. Открыв исходный файл, нажмите C-c C-z, где вы можете указать, какой интерпретатор python вы хотите использовать. Это разделит окно на два с исходным кодом слева и выводом/оболочкой python справа. Пока выбран исходный файл, вы можете нажать C-c C-c, чтобы оценить буфер и отобразить его вывод в окне справа. После оценки кода вы можете переключиться на оболочку с C-x o, а в оболочке вы можете использовать dir(), чтобы перечислить все переменные, модули, функции и т. Д. как будто вы сделали то же самое в интерактивной оболочке python.

В вашем случае вы можете запустить dir(a) или type(a) в оболочке справа.

+0

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

+1

Если это так, то то, о чем вы на самом деле просите, это помощь в написании программы elisp, которая открывает интерактивный сеанс python и делает ваши звонки от вашего имени для сканирования и анализа тех же вызовов, о которых я говорил выше. Возможно, вы захотите изменить свой вопрос, чтобы отразить это. – Anatzum