exec为什么不能在具有子功能的功能中工作?

exec为什么不能在具有子功能的功能中工作?,第1张

exec为什么不能在具有子功能的功能中工作?

正确。除非指定上下文,否则不能在具有子功能的函数中使用exec。从文档:

如果在函数中使用exec并且该函数包含带有自由变量的嵌套块,则除非exec显式指定exec的本地名称空间,否则编译器将引发SyntaxError。(换句话说,“
exec obj”将是非法的,但是“ ns中的exec obj”将是合法的。)

有充分的理由,如果不是星期天晚上,我可能会明白。现在,下一个问题:为什么要使用exec?很少需要它。你说你有充分的理由。我对此表示怀疑。;)如果您有充分的理由,我会告诉您解决方法。:-P

哦,好吧,这里仍然是:

def test2():    """Test with a subfunction."""    exec 'print "hi from test2"' in globals(), locals()    def subfunction():        return True


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5617678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存