在共享相同名称空间的多个文件中拆分Python脚本

时间:2017-12-21 16:15:01

标签: python namespaces global-variables

其他语言(C++ClojureTypeScript,或其他语言)也提出了类似的问题,但我仍然在寻找Python的答案。

在Python中使用importglobal有很多类似的问题,但相关的答案并不符合我的需要。我只是想将一个大文件拆分成较小的文件,以便在同一程序的不同版本中轻松修改/重用部分代码,而无需处理不同的命名空间或管理全局变量。

执行我想要的操作的简单方法是在运行时将选定的Python文件与脚本合并,但我希望有一种pythonic方法可以做到这一点。

通过一个例子,我想要做的是从几个几乎相同的大文件:

big_file_v1.py

## First part
# Hundreds of code lines to define things, make computations...

## Second part
# More code to do a few additional things

big_file_v2.py

## First part
# Exactly the same first part as in big_file_v1.py

## Second part
# A lot of small differences compared to big_file_v1.py

...几个较小的文件,其中大多数不需要任何修改只需要修改我想在所有不同版本中共享:

myprog_v1.py

include first_part_common_to_both_versions.py

include second_part_v1.py

myprog_v2.py

include first_part_common_to_both_versions.py

include second_part_v2.py

在第二种情况下,使用include之类的命令,我可以立即在我的程序的版本1和版本2中共享first_part_common_to_both_versions.py中所做的修改,我只需要修改/复制较小的文件second_part_v2.py如果我想进行新的修改/创建另一个新版本。

问题是:如何在Python中执行此操作include

为了避免就良好的软件开发实践进行辩论,我使用Python作为解决科学问题的工具,因此,我更关心编辑的舒适性而不是编码实践。

1 个答案:

答案 0 :(得分:0)

看看exec或execfile:

  

“Python的exec语句类似于import语句,带有   重要的区别:exec语句执行的文件   当前命名空间exec语句不会创建新的命名空间。   我们将在“执行声明”

一节中看到这一点