我管理一个相当大的基于python的量子化学套件PyQuante。我目前正在努力解决如何设置各种默认值,以便用户可以在运行时从不同的选项中进行选择。在
例如,我有三种不同的计算电子排斥积分的方法。我们把它们称为a,b,c。我以前只是简单地选择一个我最喜欢的(比如c),然后把它硬连接到计算这些积分的模块中。在
我现在修改了这个模块,默认值.py,包含了所有这些硬线。但这是在编译/安装时设置的。我现在希望用户能够在运行时重写这些选项,例如,使用。pyquanterc.py文件。在
在我的积分程序中,我现在有
from Defaults import integral_method
我知道字典和.update()方法。但我不知道在现实生活中我会怎么用这个。我的默认模块看起来像
^{pr2}$我应该修改结尾吗默认值.py去寻找一个。Python.pythonrc.py归档并重写这些值?E、 g
if os.path.exists('$HOME/.pythonrc.py'): do_something
如果是这样的话,你应该看起来像什么?在
我可以通过工厂课程来完成。在
这实际上取决于用户如何运行工具集。如果他们每次都在盘旋python代码,只需在顶部标记的选项处设置一个块就可以了。如果他们从命令行运行它,使用argparse库允许他们在命令行上切换选项。也许让它用configParser从一个文件中读取选项,用你的选项来读取一个默认文件,如果用户设置了它,则另一个带有选项的文件。在
使用当前的设置,用户可以很容易地更改脚本中的默认函数:
如果用户将此添加到脚本中,则所有使用
integral_method
fromDefaults
的模块都将使用somefunc
来计算积分。在相关问题 更多 >
编程相关推荐