您不想直接查询由
_args返回的表达式的属性
model.con1.body。以下划线开头的方法和属性被认为是 私有的
,一般用户不应使用(它们没有文档记录,并且随时可能更改,恕不另行通知或弃用警告)。其次,该
_args属性仅返回表达式树中该节点的子级。对于线性表达式,这些变量很有可能是变量,但不能保证。对于非线性表达式(和通用表达式),
_args几乎可以保证的成员是其他表达式对象。
您可以使用
identify_variables生成器获取出现在任何Pyomo表达式中的变量:
from pyomo.environ import *from pyomo.core.base.expr import identify_variablesm = ConcreteModel()m.x_1 = Var()m.x_2 = Var()m.c = Constraint(expr=exp(model.x_1) + 2*model.x_2 <= 2)vars = list(identify_variables(m.c.body))



