rule_wrapper
(函数来自 pyomo.core.base.indexed_component)
- pyomo.core.base.indexed_component.rule_wrapper(rule, wrapping_fcn, positional_arg_map=None, map_types=None)[source]
用另一个函数包装一个规则
此实用方法提供了一种用另一个函数包装函数(规则)的方式,同时保留原始函数的签名。这对于规则很重要,因为
Initializer()参数处理器依赖于知道位置参数的数量。- Parameters:
规则 (函数) – 被包装的原始规则
wrapping_fcn (function 或 Dict) – 包装函数。wrapping_fcn 将会被调用,参数为
(rule, *args, **kwargs)。为了方便起见,如果传递了一个 dict 作为 wrapping_fcn,那么将使用rule_result_substituter(wrapping_fcn)()的结果作为包装函数。positional_arg_map (iterable[int]) – 一个可迭代对象,包含规则位置参数的索引,这些索引将在包装函数签名中暴露。例如, positional_arg_map=(2, 0) 和 rule=fcn(a, b, c) 将生成一个签名如 wrapper_function(c, a) 的包装函数。