簡體   English   中英

函數獲取函數作為參數並拋出“ numpy.ndarray”對象不可調用

[英]function gets function as an argument and throws 'numpy.ndarray' object is not callable

我用其他函數作為參數調用一個函數。 另一個函數返回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中運行它?

np.zeros(...) a.method1()返回np.zeros(...)的結果,它是一個numpy.ndarray

因此,當您嘗試在method2()調用method() ,它會失敗,因為這不是函數。

您可能想要這樣:

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())

似乎您正在將調用 method1結果 (實際上是numpy.ndarraynumpy.ndarraymethod2而不是方法本身。

最后的調用應該是沒有括號的a.method2(a.method1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM