如何定义一个功能包括另一个功能?

时间:2018-12-30 15:25:09

标签: python-3.x function class numpy

我有一个工作功能:

def yo(a, b):
    return np.random.rand(a, b)

我想定义一个新函数res,该函数调用yo和另一个函数reshape

def res(a, b):
    maa = []
    for t in yo(a, b):
        maa.append(t[0])
        return np.reshape(maa, (a, 1))   # Calling another function

但是当我如下运行此功能res时,我遇到了一个错误:

res(5,4)

cannot reshape array of size 1 into shape (5,1)

当我删除以下子功能时,代码运行良好。

maa = []
for t in yo(5, 4):
    maa.append(t[0])
print(np.reshape(maa,(5,1))) 

总体而言,我想了解如何在函数中定义函数。

1 个答案:

答案 0 :(得分:0)

正如Mad Physicist建议的那样,您只是有一个缩进错误。 for循环完成后,应调用ng g c component-name --spec false 语句:

ng g c --help

这将返回与“不使用return”时相同的结果。发生错误的原因是因为def res(a, b): maa = [] for t in yo(a, b): maa.append(t[0]) return np.reshape(maa, (a, 1)) # Notice the indentation on this line 试图仅对def输出的数组的单行进行操作。