Импорт Lib не работает с функцией exec?Python

Программы на Python
Anonymous
Импорт Lib не работает с функцией exec?

Сообщение Anonymous »

Я написал приведенную ниже строку кода и пытаюсь выполнить ее с помощью метода exec. Этот код работает нормально, когда я запускаю его только в глобальном режиме.

Код: Выделить всё

codeRule = """import math
def fun (n):
data = n
data = data * math.pi
print(data)
return data
dd = fun(n)"""

codeObejct = compile(codeRule, 'sumstring', 'exec')
exec(codeObejct, dict(n = 10))
Но в моем случае использования требуется значение dd вне exec, поэтому я использовал приведенный ниже параметр, чтобы получить значение dd внутри другого кадра данных.
Но в моем варианте использования требуется значение dd вне exec, поэтому я использовал параметр ниже, чтобы получить значение dd внутри другого кадра данных.
р>

Код: Выделить всё

loc = {}
exec(codeObejct, dict(n = 10), loc)
dd = loc["dd"]
Но как только я использую local, он начинает выдавать мне ошибку относительно импорта Lib, например

Код: Выделить всё

File "", line 1, in 
File "sumstring", line 7, in 
File "sumstring", line 4, in fun
NameError: name 'math' is not defined
Может кто-нибудь помочь решить эту проблему?
Я проверил ответ на вопрос ниже, но не знаю, как вписать его в свой вариант использования.
Почему не работает импорт в exec функции?

Подробнее здесь: https://stackoverflow.com/questions/691 ... c-function

Вернуться в «Python»