Я могу поместить оператор import в строку, выполнить его, и он работает (печатает случайную цифру):
code = """
import random
def f():
print random.randint(0,9)
"""
def f():
pass
exec code
f()
Теперь, если я помещаю exec code
и f()
в свою собственную функцию и вызываю ее, она не работает.
def test():
exec code
f()
test()
Он говорит NameError: global name 'random' is not defined
.
Любая идея, что происходит?
Благодаря