python 文档指出“execfile() 不能可靠地用于修改函数的局部变量。” 在页面http://docs.python.org/2/library/functions.html#execfile
谁能提供有关此声明的更多详细信息?文档相当少。该语句似乎与“如果省略两个字典,则表达式在调用 execfile() 的环境中执行”非常矛盾。这也在文档中。在函数中使用 execfile 时是否存在特殊情况,然后 execfile 的行为类似于函数,因为它创建了一个新的范围级别?
如果我在函数中使用 execfile,例如
def testfun():
execfile('thefile.py',globals())
def testfun2():
print a
并且有由'thefile.py'中的命令创建的对象(例如对象'a'),我怎么知道它们是testfun的本地对象还是全局对象?那么,在函数 testfun2 中,'a' 会看起来是一个全局变量吗?如果我从 execfile 语句中省略 globals(),谁能更详细地解释为什么“thefile.py”中的命令创建的对象对“testfun”不可用?