我正在写一个软件包,用于导入音频文件、处理它们、打印它们等等,以供研究之用。 在管道的每个阶段,都会从设置模块中提取设置,如下所示
我希望能够更新像MODEL_NAME
这样的全局设置,并在包含它的任何dict中更新它
MODEL_NAME = 'Test1'
DAT_DIR = 'dir1/dir2/'
PROCESSING = {
"key1":{
"subkey2":0,
"subkey3":1
},
"key2":{
"subkey3":MODEL_NAME
}
}
import settings as s
wavs = import_wavs(s.DAT_DIR)
proc_wavs = proc_wavs(wavs,s.PROCESSING)
我想包含的一些设置dict MODEL_NAME
,效果很好。当我想在运行时更改MODEL_NAME
时,问题就出现了。所以如果我这么做了:
import settings as s
wavs = import_wavs(s.DAT_DIR)
s.MODEL_NAME='test1'
proc_wavs1 = proc_wavs(wavs,s.PROCESSING)
s.MODEL_NAME='test2'
proc_wavs2 = proc_wavs(wavs,s.PROCESSING)
但是很明显,这两个调用都将包含最初在设置文件中分配的s.PROCESSING
。
更新的最好方法是什么
我想到的可能解决方案:
将变量存储为可变类型,然后进行更新,例如:
s.MODEL_NAME[0] = ["test1"]
# do processing things
s.MODEL_NAME[0] = ["test2"]
将每个设置类别定义为一个函数,以便在上重新运行 每次呼叫,例如:
MODEL_NAME = 'test1' ..
def PROCESSING():
return {
"key1":{
"subkey2":0,
"subkey3":1
},
"key2":{
"subkey3":MODEL_NAME
}
}
那么
s.MODEL_NAME='test1'
proc_wavs1 = proc_wavs(wavs,s.PROCESSING())
s.MODEL_NAME='test2'
proc_wavs1 = proc_wavs(wavs,s.PROCESSING())
我原以为这很管用,但很难做到 在运行时更改函数的任何条目,例如如果我想的话 更新subkey2的值并运行其他程序
其他的想法也许是一个有更新方法的类或者什么的,有人有更好的想法吗
您希望为执行波形分析的函数配置字典中结构化的常规和特定设置
首先定义一个设置类,如:
相关问题 更多 >
编程相关推荐