小编典典

为什么在函数中的exec中无法导入?

python

我可以将import语句放在字符串中,执行它,然后它可以工作(打印随机数字):

code = """
import random
def f():
    print random.randint(0,9)
"""

def f():
    pass

exec code
f()

现在,如果我把exec codef()自己的功能和调用它,这是行不通的。

def test():
    exec code
    f()

test()

它说NameError: global name 'random' is not defined


阅读 224

收藏
2020-12-20

共1个答案

小编典典

这个怎么样:

def test():
    exec (code, globals())
    f()
2020-12-20