You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

递归函数返回None排查:如何让函数正确返回ndarray?

问题分析与解决

你的递归函数返回None的核心原因是:else分支中调用递归函数时,没有将递归的返回值传递回上层调用。只有当value==max_value的终止条件触发时,函数会返回数组,但其他递归步骤的调用没有返回任何内容,导致上层函数最终得到None。

修改后的代码

import numpy as np

def upgrade_array(array:np.ndarray, max_value:int, value:int=1):
    a = array.copy()
    index = value-1
    a[index,:] = value
    if value==max_value:
        return np.array(a)
    else:
        # 关键修改:添加return,将递归调用的结果返回
        return 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)

说明

在else分支中,必须通过return将递归调用upgrade_array(...)的结果返回给当前函数的调用者,这样递归的每一层都能把最终生成的数组传递回去,直到最外层调用得到目标ndarray。

内容的提问来源于stack exchange,提问作者MarnieGrenat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:02:01