我在使用exec()调用Python 3中的函数时出现错误。

14 浏览
0 Comments

我在使用exec()调用Python 3中的函数时出现错误。

我有一个简单的函数:\n

def fu():
    return "great"

\n我需要通过使用一个字符串来调用它,\n所以我尝试了这样做:\n

print(exec("fu()"))

\n但是我得到的输出是:\n

None

\n我该如何修复它?

0
0 Comments

在Python 3中,使用`exec()`调用函数时出现错误的原因是不能使用`exec()`来实现这个目的。然而,可以使用`eval()`来实现你想要的效果。完整的文档可以在这里找到:

>> eval('fu()')
"great"

需要注意的是,使用`eval()`并不是最佳实践。

有一种更好的方法可以通过`globals()`或`locals()`来访问这个函数,具体取决于你在哪里定义了这个函数。我认为使用这种方法而不是`eval()`更好:

>> globals()['fu']()
"great"

因此,解决这个问题的方法是使用`eval()`或`globals()`来调用函数,而不是使用`exec()`。

0