I am trying to return parent node and self in Binary Search tree. I am getting this error "cannot unpack non-iterable NoneType object". Please help.
class Node:
    def __init__(self,data=None):
        self.data=data
        self.left=None
        self.right=None
    def insert(self,data):
        if data<self.data:
            if self.left==None:
                self.left=Node(data)
            else:
                self.left.insert(data)
        elif data>self.data:
            if self.right==None:
                self.right=Node(data)
            else:
                self.right.insert(data)
        else:
            return
    def printtree(self):
        if self.left:
            self.left.printtree()
        print(self.data)
        if self.right:
            self.right.printtree()
    def findval(self,data,parent=None):
        if self.data==data:
            return self,parent
        elif data<self.data:
            if self.left==None:
                return None,None
            else:
                parent=self
                self=self.left
                self.findval(data,parent)
        elif data > self.data:
            if self.right == None:
                return None,None
            else:
                parent = self
                self = self.right
                self.findval(data,parent)
        else:
            print("data not found")
            return None,None
    def deletenode(self,data):
        self,parent=self.findval(data)
        #Error found here
        print(self.data,parent.data) 
        #Code of deletion
root=Node(10)
root.insert(5)
root.insert(15)
root.insert(3)
root.insert(7)
root.insert(13)
root.insert(16)
root.deletenode(5)
Trying to return parent node and self in findval function Error found = "TypeError: cannot unpack non-iterable NoneType object" How can we return an Object in Python?
 
    