在python中打印方法的返回
我对 python 中的 OOP 还很陌生,我似乎无法弄清楚我是否以正确的方式做这件事。我有一个名为 TP2_dat.py 的脚本,我在其中解决了 AMPL 中的一个问题,然后在最后我检索了变量 X 如下(我简化了代码):
import amplpy
import os
class Solver:
def __init__(self, set_k, larg_on, poids):
self.set_K = set_k
self.larg_on = larg_on
self.poids = poids
def solve(self):
...
X = ampl.getVariable('X')
X_val = X.getValues()
X_val_dic = X_val.toDict()
# print(X_val_dic)
return X_val_dic
我尝试打印而不是从第一个脚本返回并且它起作用了。但是现在我想从另一个脚本打印它,如下所示,所以我没有在第二个脚本的打印结束时得到 None :
from TP2_dat import Solver
set_K = [1,2,3,4,5,6]
larg_on = [4,3,5,4,6,5]
poids = [0,4,5,2,3,6,4,0,4,3,5,3,5,4,0,4,7,8,2,3,4,0,3,3,3,5,7,3,0,5,6,3,8,3,5,0]
affichage = Solver(set_K, larg_on, poids)
affichage.solve()
print(X_val_dic)
我不明白的部分是我可以做类似的事情吗?我想返回 X_val_dic 的值是否正确,还是应该做其他事情?
非常感谢你的帮助 !!
回答
由于类方法 solve 返回一个值,您需要将其设置为等于变量或直接打印它:
X_val_dic = affichage.solve()
print(X_val_dic)
或者
print(affichage.solve())
有关python 变量作用域的更多信息,请参阅本文。