标记不可变
(类来自 pyomo.common.config)
- class pyomo.common.config.MarkImmutable(*args)[源代码]
基础类:
object将ConfigValue的实例标记为不可变。
- Parameters:
config_value (ConfigValue) – 应该被标记为不可变的ConfigValue实例。 注意,可以传递多个ConfigValue实例。
示例
config = ConfigDict() config.declare('a', ConfigValue(default=1, domain=int)) config.declare('b', ConfigValue(default=1, domain=int)) locker = MarkImmutable(config.get('a'), config.get('b'))
现在,config.a 和 config.b 无法更改:
>>> config.a = 5 Traceback (most recent call last): ... RuntimeError: ConfigValue 'a' is currently immutable >>> print(config.a) 1
使它们再次可变,
>>> locker.release_lock() >>> config.a = 5 >>> print(config.a) 5
请注意,这也可以用作上下文管理器:
>>> with MarkImmutable(config.get('a'), config.get('b')): ... config.a = 10 Traceback (most recent call last): ... RuntimeError: ConfigValue 'a' is currently immutable >>> print(config.a) 5 >>> config.a = 10 >>> print(config.a) 10
方法
__init__(*args)lock()release_lock()成员文档