我管理着一个相当大的基于python的量子化学套件PyQuante.我目前正在努力设置各种默认设置,以便用户可以在运行时选择不同的选项.
例如,我有三种不同的计算电子排斥积分的方法.我们称他们为a,b,c.我过去只是选择我最喜欢的那个(比方说,c),并将其硬连接到计算这些积分的模块中.
我现在修改了它以使用包含所有这些硬线的模块Defaults.py.但这是在编译/安装时设置的.我现在希望用户能够在运行时覆盖这些选项,比如使用.pyquanterc.py文件.
在我的整体惯例中,我目前有类似的东西
from Defaults import integral_method
Run Code Online (Sandbox Code Playgroud)
我知道字典和.update()方法.但我不知道如何在现实生活中使用它.我的默认模块看起来像
integral_method = c
Run Code Online (Sandbox Code Playgroud)
我应该修改Defaults.py的结尾来查找.pythonrc.py文件并覆盖这些值吗?例如
if os.path.exists('$HOME/.pythonrc.py'): do_something
Run Code Online (Sandbox Code Playgroud)
如果是这样,应该做什么样的东西?
使用当前设置,用户可以非常轻松地更改脚本中的默认功能:
import Defaults
Defaults.integral_method = somefunc
Run Code Online (Sandbox Code Playgroud)
如果用户将此添加到他的脚本中,则使用integral_methodfrom的所有模块Defaults将用于somefunc计算积分.
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |