Я придумал некрасивый хакерский код, он работает в Python 2.6. Я не уверен, что это самая умная вещь, которую можно сделать, хотя, возможно, некоторые другие люди здесь имеют некоторое понимание:
test = __import__('os',globals(),locals())
for k in dir(test):
globals()[k] = test.__dict__[k]
Возможно, вы хотите поставить здесь галочку, чтобы убедиться, что вы ничего не перезаписываете в глобальном пространстве имен. Возможно, вы могли бы избежать части глобальных переменных и просто просмотреть каждый динамически импортируемый модуль для вашего класса интересов. Возможно, это было бы намного лучше, чем загрязнять глобальное пространство имен всем, что вы импортируете.
Например, скажем, ваш класс назван Request from urllib2
test = __import__('urllib2',globals(),locals())
cls = None
if 'Request' in dir(test):
cls = test.__dict__['Request']
# you found the class now you can use it!
cls('http://test.com')