python链表队列问题

问题遇到的现象和发生背景 python链表
用代码块功能插入代码,请勿粘贴截图
运行结果及报错内容 Traceback (most recent call last):

File "C:\Users\twy\Desktop\experiment3\lab3_2.py", line 51, in
myQueue.dequeue()
File "C:\Users\twy\Desktop\experiment3\lab3_2.py", line 31, in dequeue
assert not self.is_empty()
AssertionError

我的解答思路和尝试过的方法
class Node(object):
    def __init__(self, value=None):
        self.data = value
        self.next = None


class LQueue(object):
    def __init__(self):
        # to note that no header node is defined 
        self.front = None
        self.rear = None
        self.size=0

    def enqueue(self, value):
        # 
        newnode = Node(value)
        if self.is_empty():
            # add an element for empty queue
            self.rear = self.front = newnode
        else:
            self.rear.next=newnode
            self.rear=newnode


    def dequeue(self):
        # 
        assert not self.is_empty()
        result=self.front.data
        self.front=self.front.next
        return result

    def is_empty(self):
        return self.size==0

    def gethead(self):
        # read the front element of queue
        if not self.is_empty():
            self.front=self.front.data


if __name__ == "__main__":
    myQueue = LQueue()
    myQueue.enqueue(6)
    myQueue.enqueue(8)
    print("The top element of current queue is: ", myQueue.gethead())

    myQueue.dequeue()
    print("The top element of current queue is: ", myQueue.gethead())

class Node(object):
    def __init__(self, value=None):
        self.data = value
        self.next = None


class LQueue(object):
    def __init__(self):
        # to note that no header node is defined
        self.front = None
        self.rear = None
        self.size = 0

    def enqueue(self, value):
        #
        newnode = Node(value)
        if self.is_empty():
            # add an element for empty queue
            self.rear = self.front = newnode
        else:
            self.rear.next = newnode
            self.rear = newnode
        self.size = self.size + 1

    def dequeue(self):
        #
        assert not self.is_empty()
        result = self.front.data
        self.front = self.front.next
        self.size = self.size - 1
        return result

    def is_empty(self):
        return self.size == 0

    def gethead(self):
        # read the front element of queue
        if not self.is_empty():
            return self.front.data


if __name__ == "__main__":
    myQueue = LQueue()
    myQueue.enqueue(6)
    myQueue.enqueue(8)
    print("The top element of current queue is: ", myQueue.gethead())

    myQueue.dequeue()
    print("The top element of current queue is: ", myQueue.gethead())
 

def enqueue(self, value):这个函数里最后加上self.size += 1,每添加一个元素就更新一次size的值

1.enqueue方法添加元素后,元素个数+1
self.size+=1
2. dequeue方法删除元素后,元素个数-1
self.size-=1
3. gethead获取元素方法,没有返回值,所以是none,加上你要返回的值, return