Это мое домашнее задание в CS - Упражнение 12-6 в «Программе ядрового питона Уэсли Чуна». Цель состоит в том, чтобы имитировать расширенный импорт с помощью функции, например, когда import ... as
не был реализован. Это мои попытки, оба из которых дают ошибки:Расширенный импорт с функцией в Python
def importAs(name):
eval('import '+name)
ret = eval(name)
eval('del '+name)
return ret
foo = importAs('os')
Это дает SyntaxError: invalid syntax
на import os
в File "<string>", line 1
, в то время как:
def importAs(name):
import name
ret = name
del name
return ret
foo = importAs(os)
дает NameError: name 'os' is not defined
на foo = importAs(os)
.
Может ли кто-нибудь объяснить причину и решение, пожалуйста?
EDIT: Пожалуйста, держите его 2.x только :)
возможно дубликат [Eval импортировать модуль] (http://stackoverflow.com/questions/17136772/eval-to-import-a-module) –