Вопрос-Ответ

How to list all functions in a module?

Как составить список всех функций в модуле?

В моей системе установлен модуль Python, и я хотел бы иметь возможность видеть, какие функции / классы / методы доступны в нем.

Я хочу вызвать help функцию для каждой из них. В Ruby я могу сделать что-то вроде ClassName.methods, чтобы получить список всех методов, доступных в этом классе. Есть ли что-то подобное в Python?

например, что-то вроде:

from somemodule import foo
print(foo.methods) # or whatever is the correct method to call
Переведено автоматически
Ответ 1

Вы можете использовать dir(module), чтобы просмотреть все доступные методы / атрибуты. Также ознакомьтесь с PyDocs .

Ответ 2

Используйте inspect модуль:

from inspect import getmembers, isfunction

from somemodule import foo
print(getmembers(foo, isfunction))

Также смотрите pydoc модуль, help() функцию в интерактивном интерпретаторе и pydoc инструмент командной строки, который генерирует необходимую вам документацию. Вы можете просто предоставить им класс, документацию по которому хотите просмотреть. Они также могут генерировать, например, выходные данные HTML и записывать их на диск.

Ответ 3

После того, как вы importотредактировали модуль, вы можете просто сделать:

help(modulename)

... Чтобы получить документы по всем функциям сразу, в интерактивном режиме. Или вы можете использовать:

dir(modulename)

... Просто перечислить имена всех функций и переменных, определенных в модуле.

Ответ 4

Используйте inspect.getmembers, чтобы получить все переменные / классы / функции и т.д. в модуле и передайте inspect.isfunction в качестве предиката, чтобы получить только функции:

from inspect import getmembers, isfunction
from my_project import my_module

functions_list = getmembers(my_module, isfunction)

getmembers возвращает список кортежей, (object_name, object) отсортированных в алфавитном порядке по имени.

Вы можете заменить isfunction любыми другими isXXX функциями в inspect модуле.

python