Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python返回值遇到错误。请帮助我_Python - Fatal编程技术网

python返回值遇到错误。请帮助我

python返回值遇到错误。请帮助我,python,Python,很抱歉,我在python程序中遇到akward问题。首先,我是这里的新手,我是一名中国学生。请原谅我的英语不好。我会尽力把问题说清楚 错误代码如下: def __find__(self,node,value): if value<node.v: self.__find__(node.l,value) elif value>node.v: self.__fin

很抱歉,我在python程序中遇到akward问题。首先,我是这里的新手,我是一名中国学生。请原谅我的英语不好。我会尽力把问题说清楚

错误代码如下:

        def __find__(self,node,value):
            if value<node.v:
                self.__find__(node.l,value)
            elif value>node.v:
                self.__find__(node.r,value)
            elif value==node.v:
                return node.obj

        def Find(self,value):
            obj=self.__find__(self.r,value)
            print obj
            return obj
当我在find函数中打印node.obj时,它工作正常,但当我在find函数中打印obj时,它返回None。 这个问题整天困扰着我。如果有人能解决这个问题,我们将不胜感激

谢谢你,伙计

这里的完整代码:我只需编写BTS树:

    ####class####

    class BSTtreeNode:
        def __init__(self,lnode=None,rnode=None,parent=None,value=None,obj=None):
            self.l=lnode
            self.r=rnode
            self.p=parent
            self.v=value
            self.obj=obj


    class BSTree:
        def __init__(self,RootNode=None):
            self.r=RootNode
        def Insert(self,value,obj):
            self.__insert__(self.r,value,obj)
        def __insert__(self,node,value,obj):
            if value<=node.v:
                if node.l==None:
                    localnode=BSTtreeNode(lnode=None,rnode=None,parent=node,value=value,obj=obj)
                    node.l=localnode
                elif node.l!=None:
                    self.__insert__(node.l,value,obj)
            if value>node.v:
                if node.r==None:
                    localnode=BSTtreeNode(lnode=None,rnode=None,parent=node,value=value,obj=obj)
                    node.r=localnode
                elif node.r!=None:
                    self.__insert__(node.r,value,obj)

        def __find__(self,node,value):
            if value<node.v:
                self.__find__(node.l,value)
            elif value>node.v:
                self.__find__(node.r,value)
            elif value==node.v:
                return node.obj

        def Find(self,value):
            obj=self.__find__(self.r,value)
            print obj
            return obj
        def Print(self):
                self.__printTree__(self.r)  

        def __printTree__(self,node):
                if node.l==None and node.r==None:
                    print node.v,node.obj
                    return 
                elif node.r != None:
                    self.__printTree__(node.r)
                elif node.l !=None:
                    self.__printTree__(node.l)
                print node.v,node.obj


    def main():
        mNode=BSTtreeNode(value=10,obj="first")
        bstree=BSTree(RootNode=mNode)
        bstree.Insert(value=20,obj="second")
        bstree.Insert(30,obj="second")
        bstree.Print()
        bstree.Find(value=20)

    if __name__ =="__main__":
        main()
您的_查找函数中缺少一些返回值。更改self的两个实例。\u\u查找\u\u。。。返回自我

再次调用该函数,但不返回值。由于没有显式返回值,因此不会隐式返回任何值。

您的_ufind_;函数中缺少一些返回值。更改self的两个实例。\u\u查找\u\u。。。返回自我


再次调用该函数,但不返回值。由于您没有显式返回值,因此不会隐式返回任何值。

您需要将代码更改为:

def __find__(self,node,value):
    if value<node.v:
        return self.__find__(node.l,value)
    elif value>node.v:
        return self.__find__(node.r,value)
    elif value==node.v:
        return node.obj

您需要将代码更改为:

def __find__(self,node,value):
    if value<node.v:
        return self.__find__(node.l,value)
    elif value>node.v:
        return self.__find__(node.r,value)
    elif value==node.v:
        return node.obj

我很抱歉我的声望低于15,不能投票给你我很抱歉我的声望低于15,不能投票给你