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 (functionDict) – 包装函数。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) 的包装函数。