Python returns 实例而不是数组

Python returns instance instead of array

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

中嵌入的字段中绘制它

当我将 plt.plot(...) 代码放入 file2 和 运行 我的程序时,两个 .py 文件都没有任何问题,window 弹出我的情节在里面。

现在的问题是,当我执行以下操作时,我将尝试为您提供一个示例代码来展示我的方法:

下面是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>

我检查了 return 的数据类型,因为在我之前尝试绘制该数据时,我收到了一些 matplotlib 错误,所以我用谷歌搜索发现有问题,所以我决定我会检查 returned 的数据类型。所以我只是被困在这里,非常感谢这方面的任何帮助。

注:self.resultingArray是一个numpy数组,我查过了。当我用 print self.resultingArray 结束那部分代码时,它会打印 type(self.resultingArray) returns numpy 数组。正如我所说,plt.plot() 也有效,但我需要正确地制作 return 数据,以便我可以将该图放入我的 UI 中。提前致谢。

由于 Calculations 是 class,此行调用隐式构造函数:

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

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

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

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