Python 赋值前引用的局部变量“值”
我试图将这段代码转换成一个函数,但在赋值之前将局部变量“value”作为两个变量的错误引用。 为了更好地理解,我将粘贴整个代码Python 赋值前引用的局部变量“值”,python,python-3.x,function,return,Python,Python 3.x,Function,Return,我试图将这段代码转换成一个函数,但在赋值之前将局部变量“value”作为两个变量的错误引用。 为了更好地理解,我将粘贴整个代码 def allocator(item_mass,item_vol,truck_mass,truck_vol,truck_cost): n_items = len(item_vol) set_items = range(n_items) n_trucks = len(truck_cost) set_trucks = range(n_truc
def allocator(item_mass,item_vol,truck_mass,truck_vol,truck_cost):
n_items = len(item_vol)
set_items = range(n_items)
n_trucks = len(truck_cost)
set_trucks = range(n_trucks)
y = pulp.LpVariable.dicts('truckUsed', set_trucks,
lowBound=0, upBound=1, cat=LpInteger)
x = pulp.LpVariable.dicts('itemInTruck', (set_items, set_trucks),
lowBound=0, upBound=1, cat=LpInteger)
prob = LpProblem("Truck allocatoin problem", LpMinimize)
prob += lpSum([truck_cost[i] * y[i] for i in set_trucks])
for j in set_items:
prob += lpSum([x[j][i] for i in set_trucks]) == 1
for i in set_trucks:
prob += lpSum([item_mass[j] * x[j][i] for j in set_items]) <= truck_mass[i]*y[i]
prob += lpSum([item_vol[j] * x[j][i] for j in set_items]) <= truck_vol[i]*y[i]
for j in set_items:
for i in set_trucks:
x[j][i] <= y[i]
prob.solve()
x_soln = np.array([[x[i][j].varValue for i in set_items] for j in set_trucks])
y_soln = np.array([y[i].varValue for i in set_trucks])
lpstatus = LpStatus[prob.status] #these two throw the error
value_obj = value(prob.objective) #
return lpstatus,value_obj
u在该行中使用的函数值
value_obj = value(prob.objective)
未在任何地方定义。此处没有任何内容会导致该错误。您已经删除了一些对问题至关重要的内容。它是在函数正在使用的纸浆库中定义的
value_obj = value(prob.objective)