Initializing a class with numpy array 问题

Initializing a class with numpy array question

所以我定义了下面的函数要输入到class:

MatrixConverter(arr)

这完全符合我的要求,接受一个 numpy 数组作为参数,并生成一个更简单的矩阵作为 numpy 数组。

现在,我想定义一个由 numpy 数组初始化的 class,一旦我将矩阵输入 class,称为 SeveralConvertor,运行通过 MatrixConverter 输入矩阵,从而创建转换矩阵的内部表示。我对此的尝试如下:

class SeveralConvertor:
    def __init_(self,matrix)
    self.matrix=np.array(matrix)

def MatrixConverter(self)

q 成为一些随机数组,然后键入 q.MatrixConverter 会出现以下错误:

<bound method SeveralConverter.MatrixConverter of <__main__.SeveralConverter object at 0x7f8dab038c10>>

现在,正如我所说,函数 MatrixConverter(arr) 作为一个函数工作正常,但是当我将它输入 class 时,我将所有 arr 替换为 self, 这可能与问题有关。

非常感谢帮助!

无需做任何花哨的事情,我们可以将(经过单元测试的)函数绑定到 class 方法,然后在 __init__ 函数中调用它。


def matrixConverter(arr):
    # Some complicated function you already wrote
    raise NotImplementedError

class SeveralConverter:
    def __init__(self, matrix):
        self.matrix = self._MatrixConverter(matrix)
    
    @staticmethod
    def _MatrixConverter(arr):
        """ Call the Matrix Converter Function """
        return MatrixConverter(arr)

然后在您的代码中(将以上内容放入模块并导入 class)

matrix_converted = SeveralConverter(ugly_matrix)
print(matrix_converted.matrix)  # Prints the converted matrix