其他语言(C++,Clojure,TypeScript,或其他语言)也提出了类似的问题,但我仍然在寻找Python的答案。
在Python中使用import
和global
有很多类似的问题,但相关的答案并不符合我的需要。我只是想将一个大文件拆分成较小的文件,以便在同一程序的不同版本中轻松修改/重用部分代码,而无需处理不同的命名空间或管理全局变量。
执行我想要的操作的简单方法是在运行时将选定的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作为解决科学问题的工具,因此,我更关心编辑的舒适性而不是编码实践。
答案 0 :(得分:0)
看看exec或execfile:
“Python的exec语句类似于import语句,带有 重要的区别:exec语句执行的文件 当前命名空间exec语句不会创建新的命名空间。 我们将在“执行声明”
一节中看到这一点