此问题在此处已有答案:
Why do I get AttributeError: 'NoneType' object has no attribute 'something'?(11个答案)
5天前关闭。
我正在尝试创建一个函数式函数,并希望它返回一个数组(ndarray)。我不知道为什么,但我的代码返回了None。下面是我的代码:
def upgrade_array(array:np.ndarray, max_value:int, value:int=1):
a = array.copy()
index = value-1
a[index,:] = value
#display(a)
if value==max_value:
return np.array(a)
else:
upgrade_array(array=a, max_value=max_value, value=value+1)
a = np.zeros(shape=(10,5))
b = upgrade_array(array=a, max_value=10)
display(b)
我知道后面的逻辑是正确的,因为我验证了它(使用display(a))。我如何使它返回ndarray?
1条答案
按热度按时间6bc51xsx1#
在
else:
的情况下,函数不返回值。当然,递归调用可能会返回值,但原始调用不会。您需要在调用链中向上return
该值,如下所示