我有一个模块,我需要导入并更改该模块的导入实例中的特定变量值,然后执行它。如何导入模块并更改模块中的变量值并执行它
请注意,由于遗留原因,我无法对正在导入的模块进行单个更改。
这里就是我想要做:
说模块I要导入,a.py,看起来像
var1 = 1
var2 = 2
if __name__ == '__main__':
print var1+var2
现在我在b.py导入此,主叫脚本。我试图导入它,更改变量var1的值,并使用runpy作为主程序运行,如下所示。
import runpy
import a
a.var1 = 2
result = runpy._run_module_as_main(a.__name__)
但这打印结果为3
,不作为4
预期。
任何其他方式来实现这一点(除了使用runpy)而不改变a.py中的任何东西?只要我不需要对导入的模块进行更改,就可以打开任何第三方模块。
我使用Python 2.6
如果你真的*想要这样做,你会需要'ast'模块,我相信。 –
@WayneWerner请让我知道 – MohitC
你*真*不应该这样做,只是使用类而不是。 –