在类定义处从另一个调用python脚本失败
我有一个名为在类定义处从另一个调用python脚本失败,python,exec,Python,Exec,我有一个名为insertPrintCode.py的脚本,它可以自己工作。 我想使用另一个python脚本调用它 def main(): execfile("insertPrintCode.py") def execfile(filename): exec(compile(open(filename).read(), filename, 'exec')) 首次使用 newSearch = FileSearch() 与 NameError:未定义全局名称“FileSearch”
insertPrintCode.py
的脚本,它可以自己工作。
我想使用另一个python脚本调用它
def main():
execfile("insertPrintCode.py")
def execfile(filename):
exec(compile(open(filename).read(), filename, 'exec'))
首次使用
newSearch = FileSearch()
与
NameError:未定义全局名称“FileSearch”
FileSearch是在同一个文件中定义的类。首先,为什么要定义自己的
execfile
而不是使用?为什么要显式地调用compile
,而不是只调用exec
来编译源代码?其次,为什么要首先使用execfile
,而不是只调用import insertPrintCode
(或从insertPrintCode import*导入)或在子流程中运行它?在某些情况下,exec
是您想要的,但它们并不常见,如果您没有立即得到可靠的答案,您的答案可能不是其中之一。第三,如果您希望我们调试您的问题,您需要为我们提供insertPrintCode.py
(或者更好的是,精简版)的代码,不要让我们猜测您可能做错了什么。如果直接在命令行上执行,insertPrintCode.py
是否独立运行?文件是否独立运行。它就是这样设计的<代码>执行文件
在Python3.x中不可用,我将其用作缩写。我倒不如给它取个不同的名字。如果文件没有可调用的函数,则使用import
没有多大意义。我可以将所有代码放在main()
中,并用输入加载,但这只是一种解决方法。