可调谐/可配置的模块

问题描述

我正在用python编写一个模块,该模块具有可在各种情况下使用的许多功能,导致随着时间的推移更改默认值。 (当前,这是我正在导入的.py文件。)许多函数具有相同的硬编码默认值。我想使这些默认值可配置,理想情况下是通过一些功能,可以通过已导入模块的jupyter笔记本访问这些功能,或者至少可以在导入时设置此文件或通过配置文件进行访问。

我知道如何使用其他语言来做到这一点,但是一直在python中努力做到这一点。我不希望默认值被硬编码。我知道一些困难在于模块仅导入一次,这意味着导入完成后将无法再访问模块内部的变量。如果有办法用更Python的方式看待这个问题,我会接受一个答案,该答案解释了为什么我想要的解决方案是非Python的,以及什么是很好的选择。

例如,下面是函数的外观:

function1(arg1 = default_param1):
    return arg1
function2(arg1 = default_param1,arg2 = default_param3):
    other cool stuff

这就是我想要做的类似的事情:

import foo_module.py as foo
foo.function1()
foo.default_param1 = new_value
foo.function1()

==> arg1
==> new_value

当然,通过此设置,每次调用该函数时,您始终可以更改输入的值,但这并不理想。

在这种情况下,如何通过导入模块的代码来更改整个模块的default_param1?


编辑:澄清一下,无法通过命令行访问此模块。一个主要的用例是将其导入到jupyter笔记本中。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)