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

Why does the following attribute error occur?

尝试使用 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'

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

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

为了将您的字符串评估回 python 变量,您需要 eval 它,这样看起来像。

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