我被告知value(x)
比使用x.value
更可取,但这会在尝试存储变量值时导致未初始化变量出现问题:
initial_vals = {id(v): value(v) for v in m.component_data_objects(ctype=Var)}
如果未初始化任何变量,则会导致ValueError
被引发。这是x.value
的可靠用例,还是使用value(x)
建议的替代方案?
答案 0 :(得分:1)
您可以将exception=False
传递给value
函数或__call__
对象上的NumericValue
方法。这将取消ValueError
,只返回None
。
另一方面,如果您知道它是变量,那么使用.value
属性绝对安全。 Params是唯一具有.value
属性的其他对象(我知道),但索引Params的行为方式有很多变化,因此只使用value
函数变得更好。