python - 在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 变量作用域的更多信息,请参阅本文。
推荐阅读
- c - linux内核bootsect.s文件中的“seg fs”是什么意思
- java - JNI 加载用 c++11 编译的 .so 文件出现错误“/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found”
- google-chrome - 混合 chromeOptions.args cli 和 protractor.conf.js
- amazon-web-services - AWS Cloudfront 如何转发我的由 S3 存储桶发起的请求?
- javascript - JavaScript,同一函数的单独实例为同一封闭变量返回不同的值
- c# - Orleans - 自定义 TCP 套接字连接
- r - R group_by 行和每列的总和值
- python - 检查两个不同 csv 文件中的相同列值
- mysql - 优化 MySQL InnoDB 查询最大值,计数
- mongodb - 集合引用多个集合