python 递归返回None 解决

今天写了一个递归 return 之前答应出来都是有值的, 调用时候返回值都是None ,很是纳闷 后来找到原因
现在来看下返回None 的代码

    def get_end_parent_ele(self, obj):
        """获取这个id 所在的原始类"""
        parent_id = obj.parent_id if obj else 0
        OHHOLog.print_log("获取这个id parent_id")
        OHHOLog.print_log(parent_id)
        parent_obj = self.obj_obj.get_by_id(parent_id)
        if parent_obj.key == "all":
            OHHOLog.print_log("all")
            return_key = obj.key
            OHHOLog.print_log(return_key)
            return return_key
        else:
            self.get_end_parent_ele(parent_obj)

修改将下面的也给返回

    def get_end_parent_ele(self, obj):
        """获取这个id 所在的原始类"""
        parent_id = obj.parent_id if obj else 0
        OHHOLog.print_log("获取这个id parent_id")
        OHHOLog.print_log(parent_id)
        parent_obj = self.interest.get_by_id(parent_id)
        if parent_obj.key == "all":
            OHHOLog.print_log("all")
            return_key = obj.key
            OHHOLog.print_log(return_key)
            return return_key
        else:
            return self.get_end_parent_ele(parent_obj)

没有return的时候数据只能进不能出所以就只能返回None

猜你喜欢

转载自blog.csdn.net/yangxiaodong88/article/details/80565893
今日推荐