如何导入模块并更改模块内的变量值并执行i

2024-06-23 02:42:57 发布

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

我有一个模块,我需要导入并更改该模块的导入实例中的特定变量值,然后执行它。在

请注意,由于遗留原因,我无法对导入的模块进行任何更改。在

以下是我要做的:

假设我要导入的模块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


Tags: 模块实例namepy程序脚本程序运行if
1条回答
网友
1楼 · 发布于 2024-06-23 02:42:57

以下是我在评论中提出的具体执行情况:

#File temp.py
var1 = 1
var2 = 2

if __name__ == '__main__':
    print var1+var2

我是通过另一个文件调用它的运行.py. 关键是要有另一个类似dict的类,该类对模块导入/运行时可能更改的变量的任何更改免疫。此字典包含要更改其值的变量。在

^{pr2}$

输出

~/Temp$ python run.py
12  #Yay!

注意:这是一个快速而肮脏的实现,它只想向您展示您的方法。我建议您仔细阅读runpy,并使这段代码看起来更健壮。从现在的情况来看,这是一个正确的定义

相关问题 更多 >