Python返回实例而不是数组

时间:2015-06-05 20:57:03

标签: python numpy matplotlib plot instance

我的程序结构很简单。我有两个.py个文件,比如file1.pyfile2.pyfile1是UI,file2是计算。按下按钮时,file1将用户输入发送到file2file2进行计算,然后它应该将数组返回file1,以便file1可以在UI中嵌入的字段中绘制它。

当我在plt.plot(...)中放入file2代码并以这种方式运行我的程序时,两个.py文件都可以正常工作,窗口弹出我的情节。

现在的问题是当我做下面的事情时,我会尝试给你一个示例代码,展示我的方法:

以下是file2>

中的最后一个方法
class Calculations:
    def calcFunc(self, some arg):
        """do calculations"""
        return self.resultingArray

下面的代码是file1,典型的gui东西,所以我要裁剪一些部分>

import file2
class Application:
    def onButtonAction(self, *user info*):
        """do stuff here"""
        self.myPlotData = file2.Calculations(*user info*)
        print type(self.myPlotData)

当我这样做时,shell会在我的屏幕上打印出来:

<calcs.Calculations instance at blah>

我检查返回的数据类型,因为在我之前尝试绘制数据的时候,我收到了一些matplotlib错误所以我用Google搜索并看到有些错误所以我决定我检查一下返回的数据。所以我只是被困在这里,非常感谢你们的任何帮助。

注意:self.resultingArray是一个numpy数组,我查了一下。当我用print self.resultingArray结束代码的那部分时,它会打印并且type(self.resultingArray)返回numpy数组。正如我所说,plt.plot()也可以工作,但我需要让它正确地返回数据,所以我可以将该绘图放在我的UI中。提前谢谢。

1 个答案:

答案 0 :(得分:0)

由于Calculations是一个类,因此该行调用隐式构造函数:

self.myPlotData = file2.Calculations(*user info*)

你应该知道构造函数的结果是类的一个实例。这正是您获取type信息的原因。

如果您确实希望myPlotData成为数组,请从calcFunc()实例调用Calculations。例如:

self.myCalculations = file2.Calculations()
self.myPlotData = self.myCalculations.calcFunc(*user info*)