我正在开发一个叫做QREDIS的交互式建模平台。它由一组相互关联的模块组成,这些模块通过设置脚本导入,并向用户提供一组模型研究功能。你知道吗
作为设置的一部分,我使用
exec(open('QMod_Template.py').read())
此类是用户可定义模型的基类;即,用户可以定义并保存新模型QMod_MyModel(QMod_Template)
。所有这些工作都很完美。我不想强迫用户以后用exec(open('QMod_MyModel.py').read())
重新加载他的模型,所以我在模型QREDIS_Model
中创建了一个函数LoadModel
,它将加载指定的模型类文件(基本上是exec
代码的包装器)。你知道吗
当我执行这个函数时,我得到一个错误NameError: name 'QMod_Template' is not defined
。总结
首先,我从文件中加载一个类:
exec(open('QMod_Template.py').read())
然后我导入一个模块
import QREDIS_Model as QM
然后我尝试加载另一个模型类文件
QM.LoadModel('QMod_MyModel.py')
并获取名称错误。你知道吗
本质上,QREDIS_Model.LoadModel
需要能够访问已经加载的QMod_Template
类,但不能。我尝试在模块和函数中声明QMod\u模板为global,但没有成功。你知道吗
我想这应该是个简单的解决办法。我错过了什么?我希望这个延伸的问题能使我的问题更加清楚。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐