好的,我有一个关于如何有效地布置代码的问题。
我有一个用python编写的模型,该模型会生成用于在matplotlib中生成图形的结果。按照书面说明,该模型包含在一个文件中,我还有其他15个运行文件,这些文件以复杂的配置进行调用并生成图形。遍历并运行每个运行文件都需要花费一些时间,但是由于它们都为模型使用了完全不同的设置,因此无论如何我都需要拥有复杂的安装文件,并且所有这些都可以使用。
我将输出的数据设置在学术论文中。我现在已经意识到,我将再次需要其他形式的这些图形-一种用于演示(低dpi,中等大小,不同字体),另一种用于海报(高dpi,更大,更大,不同字体)。 / p>
这意味着我每次更改模型时都可能需要处理45个奇数文件。我还必须剪切并粘贴很多样板的matplotlib代码,并进行较小的更改(每个运行文件将变成3个不同的文件-每个图一个)。
有人可以向我解释如何(以及是否)可以加快速度吗?目前,我认为这花了我更长的时间。
我看到它有3个主要选项:
有人可以指出我的资源或为我提供一些有关如何最好地处理此问题的建议吗?
谢谢!
答案 0 :(得分:1)
我认为您已经快找到想要的东西了。
如果计算需要花费一些时间,请将结果存储在文件中,以便以后处理而无需重新计算。
最重要的是:将代码与配置分开,而不是复制并粘贴此类混合物的变体。
如果模型带有参数,请定义一个模型类。也许只实例化一次模型,但是模型知道如何load_config
,read_input_data
和run
。模型也执行write_results
。这样,您可以为每个配置甚至输入数据循环执行load_config
,read_data
,write_results
的序列。
例如,以ini格式手工编写配置文件,然后使用confiparser
模块加载它们。
为您的Graph
类做类似的事情。将模板定义放入配置文件中,包括输出格式,大小字体等。
最后,您将可以使用一个使用此功能的脚本来“管理”预期的工作流程。也许将一组相关的配置文件,输出模板和输入数据存储在一起,对于每个建模会话,每个文件夹一组。