防止递归函数中的数据丢失

Prevent loss of data in recursive function

我有一个递归函数,我向其传递了某些参数。函数如下:

def insert_category(a, b, c, d, content_to_write):
    response_content = []
    
    if content_to_write:
        response_content.extend(content_to_write)
    
    for x in b:
        write_back_content = {}
        write_back_content = {"category_path": "a", "name": "b" ,"status" : "Successful" ,"err_desc" : "-" }
        form_category = {"pid": "0", "name": "Library" }
        category_exists = db.collection.find_one({"_id":a})
        if some_cond:
                write_back_content["status"] = "Failed"
                write_back_content["err_desc"] = "Duplicate Category"
                response_content.append(write_back_content)
                continue
        elif some_other_cond:
            write_back_content["status"] = "Failed"
            write_back_content["err_desc"] = "Invalid pid i.e category path"
            response_content.append(write_back_content)
            continue
        
        insert_status = db.collections.insert(form_category)
        if not insert_status:
            write_back_content["status"] = "Failed"
            write_back_content["err_desc"] = "Unable to create category"
            response_content.append(write_back_content)
            continue
        else:    
            c[map_some_id] = insert_status
            response_content.append(write_back_content)
        insert_category(a, b, c, d ,content_to_write=response_content)

    logger.info("RESPONSE CONTENT {}".format(response_content))
    return response_content

我目前面临的问题是日志行“RESPONSE CONTENT”以某种方式丢失了最后附加的信息,例如:如果 response_content 中有 4 个插入,当我调用此函数时,return 响应只有 3 个插入。最后一个不见了。另外,奇怪的是,日志打印了 4 次而不是一次,因为它超出了 for loop.Any 我哪里出错的想法?​​

好吧,经过很长时间的调试,我意识到这个错误很愚蠢。函数 returns 一些数据。所以我没有存储 return 内容。所以有效的解决方案是 response_content = insert_category(args).