Как получить ссылку на текущие атрибуты модуля в Python

То, что я пытаюсь сделать, будет выглядеть в командной строке:

>>> import mymodule
>>> names = dir(mymodule)

Как я могу получить ссылку на все имена, определенные в mymodule из самого mymodule?

Что-то вроде этого:

# mymodule.py
names = dir(__thismodule__)

Ответ 1

Просто используйте globals()

globals() - возврат словаря представляющий текущий глобальный символ Таблица. Это всегда словарь текущего модуля (внутри функции или метода, это модуль где он определен, а не модуль из которого он называется).

http://docs.python.org/library/functions.html#globals

Ответ 2

Как упоминалось ранее, globals дает вам словарь, а не dir(), который дает вам список имен, определенных в модуле. Обычно я вижу, как это делается:

import sys
dir(sys.modules[__name__])

Ответ 3

Также проверьте встроенный модуль inspect. Это может быть очень удобно.