如何实现"包全局配置对象"?

时间:2014-05-24 17:04:04

标签: matlab

我想实现一个“package-global config object”,封装配置 parameters ,由一组脚本和函数包共享。

理想情况,我希望能够像这样使用这个对象:

import mypkg.config;

% ...
% config parameters should be settable at run-time
config.start_time = clock();

% ...
% ideally, it should be possible to apply subscript subexpressions, such
% as {:} below, *directly* to config parameters
conn = database(config.connParams{:});
% here, config.connParams is expected to contain a cell array of strings

毋庸置疑,应该保护config中参数的名称不受包外定义的名称的影响。

配置对象的另一个重要要求是,应该可以在一个文件中完全初始化其所有参数。

我不知道实现上面说明的乌托邦config的任何简单方法。似乎如果foo.bar导入了import,那么bar.baz只能是函数或类,而不是变量。 (但是,如果我错了,请纠正我!)

我正在寻找使用上述属性逼近config对象的方法。

BTW,我意识到只读参数( aka “常量”)可以通过“常量函数”进行模拟,但这不是一个可接受的解决方案,因为我需要能够在运行时初始化和/或修改config中的至少一些参数。

0 个答案:

没有答案