动态隐式域
(类来自 pyomo.common.config)
- class pyomo.common.config.DynamicImplicitDomain(callback)[source]
基础类:
object可以根据键返回自定义域的隐式域。
这提供了一种管理类似插件系统的机制,其中键指定了额外配置信息的来源。例如,给定插件模块,
pyomo/common/tests/config_plugin.py:from pyomo.common.config import ConfigDict, ConfigValue def get_configuration(config): ans = ConfigDict() ans.declare('key1', ConfigValue(default=0, domain=int)) ans.declare('key2', ConfigValue(default=5, domain=str)) return ans(config)
然后我们可以声明一个 :class:``ConfigDict`,它从与键名匹配的模块中导入特定键的域:
def _pluginImporter(name, config): mod = importlib.import_module(name) return mod.get_configuration(config) config = ConfigDict() config.declare('plugins', ConfigDict( implicit=True, implicit_domain=DynamicImplicitDomain(_pluginImporter))) config.plugins['pyomo.common.tests.config_plugin'] = {'key1': 5} config.display()
plugins: pyomo.common.tests.config_plugin: key1: 5 key2: '5'注意
此初始化器仅对
ConfigDict的implicit_domain参数有用(而不适用于“常规”的domain参数)- Parameters:
callback (Callable[[str, object], ConfigBase]) – 一个可调用的(函数),它接收ConfigDict的键和值,并期望返回适当的Config对象(ConfigValue、ConfigList或ConfigDict)
方法
__init__(callback)成员文档