使用exec调用函数

时间:2016-01-27 14:42:40

标签: python exec

尝试使用exec将函数作为字符串调用,但它不起作用。我在下面附上了一个简单的示例代码。

我得到一个错误,即square_it()缺少1个必需的位置参数:'num。'我知道它丢失但我不知道如何在该全局语法中使用该参数。

以下是一个例子:

def square_it(num):

    result = num * num
    return result

def test():

    #code_globals = {}
    globals()['square_it']()
    code_locals = {'testing':0}
    comd_str = "testing = square_it(2)"
    exec(comd_str, globals(), code_locals)
    print(code_locals['testing'])


test()

1 个答案:

答案 0 :(得分:1)

exec调用中没有发生错误;当你调用全局变量时,它会发生在第一行。所有其余代码都无关紧要。

调用函数完全与以其他任何方式执行相同;你有调用括号,你只需要把你的论点放在那里:

globals()['square_it'](2)