函数获取函数作为参数并抛出“ numpy.ndarray”对象不可调用

时间:2019-03-13 14:57:01

标签: python numpy arguments

我用另一个函数作为参数调用一个函数。另一个函数返回numpy.ndarray。

代码:

class CLASS:
    def method1(self):
        size = 10
        return np.zeros([size,size])
    def method2(self, method):
        res = method()

a = CLASS ()
b = a.method2(a.method1())

第一个功能让我失望 TypeError:“ numpy.ndarray”对象不可调用

我想在循环中运行method2(),并提供不同的功能作为参数。

问题:是否可以在Python 3中运行它?

2 个答案:

答案 0 :(得分:0)

a.method1()返回np.zeros(...)的结果,即numpy.ndarray

因此,当您尝试在method()中调用method2()时会失败,因为这不是函数。

您可能想要这个:

import numpy as np

class CLASS:
    def method1(self):
        size = 10
        return np.zeros([size,size])
    def method2(self, glcm):
        pass

a = CLASS ()
b = a.method2(a.method1())

答案 1 :(得分:0)

似乎您正在将调用结果 method1(实际上是numpy.ndarray)传递给method2而不是方法本身。 / p>

最后的呼叫应为a.method2(a.method1),且不带括号。