Код: Выделить всё
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 внутри другого кадра данных.
р>
Код: Выделить всё
loc = {}
exec(codeObejct, dict(n = 10), loc)
dd = loc["dd"]
Код: Выделить всё
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