import types imports = dict((name, val) for name, val in globals().items() if isinstance(val, types.ModuleType))
На Python 2.7 можно немного изящнее:
import types imports = {name: val for name, val in globals().items() if isinstance(val, types.ModuleType)}
Однако видим пример влияния измерительного инструмента на измеряемую величину, всегда грузится дополнительный модуль types, который также и показывается. Нужен он только для получения типа модуля types.ModuleType. А определен ModuleType прямо таки примитивно (я сразу догадался :)
import sys ModuleType = type(sys)
И тут мы вспоминаем, что у нас всегда есть загруженный магический модуль __builtins__, и ничего не мешает его использовать:
imports = {name: val for name, val in globals().items() if isinstance(val, type(__builtins__))}
Теперь совсем хорошо!
Комментариев нет:
Отправить комментарий