我可以将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
。 最佳答案
这个怎么样:
def test():
exec (code, globals())
f()