我有一个模块,我需要导入并更改该模块的导入实例中的特定变量值,然后执行它。在
请注意,由于遗留原因,我无法对导入的模块进行任何更改。在
以下是我要做的:
假设我要导入的模块a.py看起来像
var1 = 1
var2 = 2
if __name__ == '__main__':
print var1+var2
现在我在b.py中导入这个调用程序脚本。我尝试导入它,更改变量var1的值,并使用runpy作为主程序运行它,如下所示。在
^{pr2}$但是这个打印结果只是3
,而不是预期的4
。在
有没有其他方法可以实现这一点(除了使用runpy)而不改变a.py中的任何内容?对任何第三方模块开放,只要我不必在导入的模块中进行更改。在
使用python 2.6
以下是我在评论中提出的具体执行情况:
我是通过另一个文件调用它的运行.py. 关键是要有另一个类似
^{pr2}$dict
的类,该类对模块导入/运行时可能更改的变量的任何更改免疫。此字典包含要更改其值的变量。在输出
注意:这是一个快速而肮脏的实现,它只想向您展示您的方法。我建议您仔细阅读
runpy
,并使这段代码看起来更健壮。从现在的情况来看,这是一个正确的定义相关问题 更多 >
编程相关推荐