这个问题我想了很久,一直没搞明白,希望各位大神帮忙。
我有一个 python 脚本文件夹,所有这些都具有相同的周围主体(从字面上看,我是从 shell 脚本生成的),但有一个与所有这些不同的块。换句话说:
Top piece of code (always the same)
Middle piece of code (changes from file to file)
Bottom piece of code (always the same)
今天我意识到这是一个坏主意,例如,如果我想从顶部或底部更改某些内容,我需要编写一个 shell 脚本来完成它。(并不是说这很难,只是在代码方面看起来很糟糕)。
所以我想做的是有一个像这样的外部python脚本:
Top piece of code
Dynamic function that calls the middle piece of code (based on a parameter)
Bottom piece of code
然后文件夹中的所有其他 python 文件都可以只是中间的代码。但是,普通模块在这里不起作用(除非我弄错了),因为我会从争论中得到我需要执行的代码,这将是一个字符串,因此我不知道要运行哪个函数直到运行时.
所以我想出了另外两个解决方案:
- 我可以编写一堆 if 语句,一个基于某个参数运行每个脚本。我拒绝了这个,因为它比以前的设计更糟糕。
我可以使用:
os.command(sys.argv[0] scriptName.py)
这将运行脚本,但调用 python 来调用 python 对我来说似乎不是很优雅。
那么有人有其他想法吗?谢谢你。