使用execfi运行带有闭包的脚本时未定义全局名称

2024-09-27 07:35:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从带有execfilescript1运行script2,并且script2包含闭包:

script1.py

MyVar1 = 'value1'


def fun1():
    print(MyVar1)


def fun2():
    execfile('script2.py')

fun1()
fun2()

script2.py

MyVar2 = 'value2'


def fun1():
    print(MyVar2)


fun1()

出现错误

  File "...script1.py", line 12, in <module>
    fun2()
  File "...script1.py", line 9, in fun2
    execfile('script2.py')
  File "script2.py", line 8, in <module>
    fun1()
  File "script2.py", line 5, in fun1
    print(MyVar2)
NameError: global name 'MyVar2' is not defined

如何修复仍然使用script1execfile

更新

如果用execfile是不可能的,那么怎么做呢


Tags: inpydeflinefilemoduleprintvalue1

热门问题