我可以将import语句放在字符串中,执行它,然后它可以工作(打印随机数字):
code = """ import random def f(): print random.randint(0,9) """ def f(): pass exec code f()
现在,如果我把exec code和f()自己的功能和调用它,这是行不通的。
exec code
f()
def test(): exec code f() test()
它说NameError: global name 'random' is not defined。
NameError: global name 'random' is not defined
这个怎么样:
def test(): exec (code, globals()) f()