Как легко найти пространство имен класса в Python без использования IDE? - PullRequest
1 голос
/ 10 января 2010

Обычно я использую IntelliJ для программирования на Python. Но иногда у меня нет доступа к нему или просто для быстрого редактирования я открываю файл Python в текстовом редакторе.

В те времена действительно было трудно найти пространство имен класса. Я гуглю это. Но это требует времени. Есть ли лучший способ сделать это?

Edit: Глядя на ответы, я заметил, что мой вопрос не очень ясен.

Мне нужно найти пространство имен класса во время кодирования, а не во время выполнения. Поэтому методы самоанализа, такие как inspect или __module__, мне не помогают.

WildSeal предлагает использовать онлайн-документ . Это хорошо, но полезно только для стандартных библиотек Python. Я хочу найти все модули, установленные в моем текущем пути Python. Это легко с IntelliJ. Он уже проиндексировал все файлы.

Я пытался использовать grep для поиска класса в каталоге site-packages. Но поиск всех файлов занимает много времени, возможно, потому что они не были проиндексированы.

Ответы [ 5 ]

2 голосов
/ 10 января 2010

Давайте не будем забывать о dir(), который активно используется теми из нас, кто использует vim в качестве нашей IDE.

1 голос
/ 11 января 2010

Я использую ctags , у меня есть site-packages, а также другие папки, проиндексированные заранее. Существует целый ряд инструментов с графическим интерфейсом и командной строки , которые будут интегрироваться с ctags для выполнения того, что вам нужно. Лично я использую vim в качестве текстового редактора с плагином TagList ( инструкция ).

0 голосов
/ 11 января 2010

Попробуйте проверить .getmodule:

>>> import inspect
>>> class Foo:
    pass

>>> inspect.getmodule(Foo)
<module '__main__' (built-in)>

Там тоже много других интересных вещей.

0 голосов
/ 10 января 2010

Специальный атрибут __module__ - это имя модуля, в котором был определен класс. Это будет '__main__', если определено в скрипте верхнего уровня.

0 голосов
/ 10 января 2010

Вы можете проверить онлайн-документацию или документацию, установленную с Python. Если вы ищете функцию или класс, вы получите всю необходимую информацию (я полагаю, вы имели в виду пакет или модуль класса или функции в стандартной библиотеке Python).

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

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