首页 > 解决方案 > 在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 的值是正确的还是应该做其他事情?

非常感谢你的帮助 !!

标签: python

解决方案


由于类方法solve返回一个值,您需要将其设置为等于变量或直接打印:

X_val_dic = affichage.solve()
print(X_val_dic)

或者

print(affichage.solve())

有关 python 变量作用域的更多信息,请参阅本文


推荐阅读