为什么会出现以下属性错误?

时间:2016-03-13 15:35:24

标签: python linear-programming attributeerror

尝试使用PuLP库在Python中执行以下命令时出现以下错误

for i in range(0, items):
    print('x{0} = {1}'.format(i+1, value('x{0}'.format(i+1))))

这是我的代码,它会抛出以下错误

Traceback (most recent call last):
  File "C:/Python34/knapsack.py", line 81, in <module>
    print('x{0} = {1}'.format(i+1, value('x{0}'.format(i+1))))
  File "C:\Python34\lib\site-packages\pulp-1.6.1-py3.4.egg\pulp\pulp.py", line 1990, in value
    else: return x.value()
AttributeError: 'str' object has no attribute 'value'

我的问题是为什么这不起作用。拆分print语句往往可以正常工作。

1 个答案:

答案 0 :(得分:0)

value方法需要一个PuLP变量对象,而不是一个与一个名称相同的字符串。

为了将你的字符串计算回一个python变量,你需要eval它,所以看起来像。

value(eval('x{0}'.format(i+1)))