【发布时间】:2019-08-18 19:13:22
【问题描述】:
我想在函数中定义一个函数,并从函数外调用它。这是我的代码的简化版本:
def make_func():
exec('def test(text):\n\tprint(text)')
make_func()
test("Hello")
当我运行这段代码时,我得到了这个错误:
Traceback (most recent call last):
line 6, in <module>
test("Hello")
NameError: name 'test' is not defined
提前感谢您的帮助。
【问题讨论】:
-
您为什么要这样做?我认为 test 只在 exec 的范围内定义
-
您对我可以使用的其他功能有什么建议吗?
-
有什么意义?您要达到什么目的,而您无法通过正常方式定义功能来实现? (你为什么把
exec带进来?) -
这是我实际代码的简化版本,我必须在函数中动态创建一个函数。我不需要使用
exec(),但我想不出另一种方法来做到这一点